#include <vector>
#include <string>
#include <utility>

#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;
using namespace dnn;

vector< pair<dnn::Backend, dnn::Target> > backendTargetPairs = {
        std::make_pair<dnn::Backend, dnn::Target>(dnn::DNN_BACKEND_OPENCV, dnn::DNN_TARGET_CPU),
        std::make_pair<dnn::Backend, dnn::Target>(dnn::DNN_BACKEND_CUDA, dnn::DNN_TARGET_CUDA),
        std::make_pair<dnn::Backend, dnn::Target>(dnn::DNN_BACKEND_CUDA, dnn::DNN_TARGET_CUDA_FP16),
        std::make_pair<dnn::Backend, dnn::Target>(dnn::DNN_BACKEND_TIMVX, dnn::DNN_TARGET_NPU),
        std::make_pair<dnn::Backend, dnn::Target>(dnn::DNN_BACKEND_CANN, dnn::DNN_TARGET_NPU) };


Mat getMediapipeAnchor();

class MPPersonDet {
private:
    Net net;
    string modelPath;
    Size inputSize;
    float scoreThreshold;
    float nmsThreshold;
    dnn::Backend backendId;
    dnn::Target targetId;
    int topK;
    Mat anchors;

public:
    MPPersonDet(string modPath, float nmsThresh = 0.3, float scoreThresh = 0.5, int tok = 5000, dnn::Backend bId = DNN_BACKEND_DEFAULT, dnn::Target tId = DNN_TARGET_CPU) :
        modelPath(modPath), nmsThreshold(nmsThresh),
        scoreThreshold(scoreThresh), topK(tok),
        backendId(bId), targetId(tId)
    {
        this->inputSize = Size(224, 224);
        this->net = readNet(this->modelPath);
        this->net.setPreferableBackend(this->backendId);
        this->net.setPreferableTarget(this->targetId);
        this->anchors = getMediapipeAnchor();
    }

    pair<Mat, Size> preprocess(Mat img)
    {
        Mat blob;
        Image2BlobParams paramMediapipe;
        paramMediapipe.datalayout = DNN_LAYOUT_NCHW;
        paramMediapipe.ddepth = CV_32F;
        paramMediapipe.mean = Scalar::all(127.5);
        paramMediapipe.scalefactor = Scalar::all(1 / 127.5);
        paramMediapipe.size = this->inputSize;
        paramMediapipe.swapRB = true;
        paramMediapipe.paddingmode = DNN_PMODE_LETTERBOX;

        double ratio = min(this->inputSize.height / double(img.rows), this->inputSize.width / double(img.cols));
        Size padBias(0, 0);
        if (img.rows != this->inputSize.height || img.cols != this->inputSize.width)
        {
            // keep aspect ratio when resize
            Size ratioSize(int(img.cols * ratio), int(img.rows * ratio));
            int padH = this->inputSize.height - ratioSize.height;
            int padW = this->inputSize.width - ratioSize.width;
            padBias.width = padW / 2;
            padBias.height = padH / 2;
        }
        blob = blobFromImageWithParams(img, paramMediapipe);
        padBias = Size(int(padBias.width / ratio), int(padBias.height / ratio));
        return pair<Mat, Size>(blob, padBias);
    }

    Mat infer(Mat srcimg)
    {
        pair<Mat, Size> w = this->preprocess(srcimg);
        Mat inputBlob = get<0>(w);
        Size padBias = get<1>(w);
        this->net.setInput(inputBlob);
        vector<Mat> outs;
        this->net.forward(outs, this->net.getUnconnectedOutLayersNames());
        Mat predictions = this->postprocess(outs, Size(srcimg.cols, srcimg.rows), padBias);
        return predictions;
    }

    Mat postprocess(vector<Mat> outputs, Size orgSize, Size padBias)
    {
        Mat score = outputs[1].reshape(0, outputs[1].size[0]);
        Mat boxLandDelta = outputs[0].reshape(outputs[0].size[0], outputs[0].size[1]);
        Mat boxDelta = boxLandDelta.colRange(0, 4);
        Mat landmarkDelta = boxLandDelta.colRange(4, boxLandDelta.cols);
        double scale = max(orgSize.height, orgSize.width);
        Mat mask = score < -100;
        score.setTo(-100, mask);
        mask = score > 100;
        score.setTo(100, mask);
        Mat deno;
        exp(-score, deno);
        divide(1.0, 1 + deno, score);
        boxDelta.colRange(0, 1) = boxDelta.colRange(0, 1) / this->inputSize.width;
        boxDelta.colRange(1, 2) = boxDelta.colRange(1, 2) / this->inputSize.height;
        boxDelta.colRange(2, 3) = boxDelta.colRange(2, 3) / this->inputSize.width;
        boxDelta.colRange(3, 4) = boxDelta.colRange(3, 4) / this->inputSize.height;
        Mat xy1 = (boxDelta.colRange(0, 2) - boxDelta.colRange(2, 4) / 2 + this->anchors) * scale;
        Mat xy2 = (boxDelta.colRange(0, 2) + boxDelta.colRange(2, 4) / 2 + this->anchors) * scale;
        Mat boxes;
        hconcat(xy1, xy2, boxes);
        vector< Rect2d > rotBoxes(boxes.rows);
        boxes.colRange(0, 1) = boxes.colRange(0, 1) - padBias.width;
        boxes.colRange(1, 2) = boxes.colRange(1, 2) - padBias.height;
        boxes.colRange(2, 3) = boxes.colRange(2, 3) - padBias.width;
        boxes.colRange(3, 4) = boxes.colRange(3, 4) - padBias.height;
        for (int i = 0; i < boxes.rows; i++)
        {
            rotBoxes[i] = Rect2d(Point2d(boxes.at<float>(i, 0), boxes.at<float>(i, 1)), Point2d(boxes.at<float>(i, 2), boxes.at<float>(i, 3)));
        }
        vector< int > keep;
        NMSBoxes(rotBoxes, score, this->scoreThreshold, this->nmsThreshold, keep, this->topK);
        if (keep.size() == 0)
            return Mat();
        int nbCols = landmarkDelta.cols + boxes.cols + 1;
        Mat candidates(int(keep.size()), nbCols, CV_32FC1);
        int row = 0;
        for (auto idx : keep)
        {
            candidates.at<float>(row, nbCols - 1) = score.at<float>(idx);
            boxes.row(idx).copyTo(candidates.row(row).colRange(0, 4));
            candidates.at<float>(row, 4) = (landmarkDelta.at<float>(idx, 0) / this->inputSize.width + this->anchors.at<float>(idx, 0)) * scale - padBias.width;
            candidates.at<float>(row, 5) = (landmarkDelta.at<float>(idx, 1) / this->inputSize.height + this->anchors.at<float>(idx, 1)) * scale - padBias.height;
            candidates.at<float>(row, 6) = (landmarkDelta.at<float>(idx, 2) / this->inputSize.width + this->anchors.at<float>(idx, 0)) * scale - padBias.width;
            candidates.at<float>(row, 7) = (landmarkDelta.at<float>(idx, 3) / this->inputSize.height + this->anchors.at<float>(idx, 1)) * scale - padBias.height;
            candidates.at<float>(row, 8) = (landmarkDelta.at<float>(idx, 4) / this->inputSize.width + this->anchors.at<float>(idx, 0)) * scale - padBias.width;
            candidates.at<float>(row, 9) = (landmarkDelta.at<float>(idx, 5) / this->inputSize.height + this->anchors.at<float>(idx, 1)) * scale - padBias.height;
            candidates.at<float>(row, 10) = (landmarkDelta.at<float>(idx, 6) / this->inputSize.width + this->anchors.at<float>(idx, 0)) * scale - padBias.width;
            candidates.at<float>(row, 11) = (landmarkDelta.at<float>(idx, 7) / this->inputSize.height + this->anchors.at<float>(idx, 1)) * scale - padBias.height;
            row++;
        }
        return candidates;

    }


};
std::string keys =
"{ help  h          |                                               | Print help message. }"
"{ model m          | person_detection_mediapipe_2023mar.onnx       | Usage: Path to the model, defaults to person_detection_mediapipe_2023mar.onnx  }"
"{ input i          |                                               | Path to input image or video file. Skip this argument to capture frames from a camera.}"
"{ score_threshold  | 0.5                                           | Usage:  Set the minimum needed confidence for the model to identify a person, defaults to 0.5. Smaller values may result in faster detection, but will limit accuracy. Filter out persons of confidence < conf_threshold. }"
"{ nms_threshold    | 0.3                                           | Usage: Suppress bounding boxes of iou >= nms_threshold. Default = 0.3. }"
"{ top_k            | 1                                             | Usage: Keep top_k bounding boxes before NMS. }"
"{ save s           | 0                                             | Usage: Specify to save file with results (i.e. bounding box, confidence level). Invalid in case of camera input. }"
"{ vis v            | 1                                             | Usage: Specify to open a new window to show results. Invalid in case of camera input. }"
"{ backend bt       | 0                                             | Choose one of computation backends: "
"0: (default) OpenCV implementation + CPU, "
"1: CUDA + GPU (CUDA), "
"2: CUDA + GPU (CUDA FP16), "
"3: TIM-VX + NPU, "
"4: CANN + NPU}";

Mat visualize(Mat img, Mat results, double fps = -1)
{
    Mat resImg = img.clone();
    if (fps > 0)
        putText(resImg, format("FPS: %2f", fps), Point(0, 15), FONT_HERSHEY_SIMPLEX, 0.5, Scalar(0, 0, 255));

    for (int row = 0; row < results.rows; row++)
    {
        float score = results.at<float>(row, results.cols - 1);
        Mat personLandmarks;
        results.row(row).colRange(4, results.cols - 1).reshape(0, 4).convertTo(personLandmarks, CV_32S);

        Point hipPoint = Point(personLandmarks.row(0));
        Point fullBody = Point(personLandmarks.row(1));
        Point shoulderPoint = Point(personLandmarks.row(2));
        Point upperBody = Point(personLandmarks.row(3));

        // draw circle for full body
        int radius = int(norm(hipPoint - fullBody));
        circle(resImg, hipPoint, radius, Scalar(255, 0, 0), 2);

        // draw circle for upper body
        radius = int(norm(shoulderPoint - upperBody));
        circle(resImg, shoulderPoint, radius, Scalar(0, 255, 255), 2);

        // draw points for each keypoint
        for (int iRow=0; iRow < personLandmarks.rows; iRow++)
            circle(resImg, Point(personLandmarks.row(iRow)), 2, Scalar(0, 0, 255), 2);
        putText(resImg, format("Score: %4f", score), Point(0, resImg.rows - 48), FONT_HERSHEY_DUPLEX, 0.5, Scalar(0, 255, 0));
    }
    // put score
    putText(resImg, string("Yellow: upper body circle"), Point(0, resImg.rows - 36), FONT_HERSHEY_DUPLEX, 0.5, Scalar(0, 255, 255));
    putText(resImg, string("Blue: full body circle"), Point(0, resImg.rows - 24), FONT_HERSHEY_DUPLEX, 0.5, Scalar(255, 0, 0));
    putText(resImg, string("Red: keypoint"), Point(0, resImg.rows - 12), FONT_HERSHEY_DUPLEX, 0.5, Scalar(0, 0, 255));

    return resImg;
}

int main(int argc, char** argv)
{
    CommandLineParser parser(argc, argv, keys);

    parser.about("Person Detector from MediaPipe");
    if (parser.has("help"))
    {
        parser.printMessage();
        return 0;
    }

    string model = parser.get<String>("model");
    float scoreThreshold = parser.get<float>("score_threshold");
    float nmsThreshold = parser.get<float>("nms_threshold");
    int topK = parser.get<int>("top_k");
    bool vis = parser.get<bool>("vis");
    bool save = parser.get<bool>("save");
    int backendTargetid = parser.get<int>("backend");

    if (model.empty())
    {
        CV_Error(Error::StsError, "Model file " + model + " not found");
    }
    VideoCapture cap;
    if (parser.has("input"))
        cap.open(samples::findFile(parser.get<String>("input")));
    else
        cap.open(0);
    Mat frame;

    MPPersonDet modelNet(model, nmsThreshold, scoreThreshold, topK,
        backendTargetPairs[backendTargetid].first, backendTargetPairs[backendTargetid].second);
    //! [Open a video file or an image file or a camera stream]
    if (!cap.isOpened())
        CV_Error(Error::StsError, "Cannot open video or file");

    static const std::string kWinName = "MPPersonDet Demo";
    while (waitKey(1) < 0)
    {
        cap >> frame;
        if (frame.empty())
        {
            cout << "Frame is empty" << endl;
            waitKey();
            break;
        }
        TickMeter tm;
        tm.start();
        Mat results = modelNet.infer(frame);
        tm.stop();
        cout << "Inference time: " << tm.getTimeMilli() << " ms\n";
        Mat img = visualize(frame, results, tm.getFPS());
        if (save && parser.has("input"))
        {
            cout << "Results saved to result.jpg\n";
            imwrite("result.jpg", img);
        }

        if (vis || !parser.has("input"))
        {
            imshow(kWinName, img);
        }
    }
    return 0;
}


Mat getMediapipeAnchor()
{
    Mat anchor= (Mat_<float>(2254,2) << 0.017857142857142856, 0.017857142857142856,
        0.017857142857142856, 0.017857142857142856,
        0.05357142857142857, 0.017857142857142856,
        0.05357142857142857, 0.017857142857142856,
        0.08928571428571429, 0.017857142857142856,
        0.08928571428571429, 0.017857142857142856,
        0.125, 0.017857142857142856,
        0.125, 0.017857142857142856,
        0.16071428571428573, 0.017857142857142856,
        0.16071428571428573, 0.017857142857142856,
        0.19642857142857142, 0.017857142857142856,
        0.19642857142857142, 0.017857142857142856,
        0.23214285714285715, 0.017857142857142856,
        0.23214285714285715, 0.017857142857142856,
        0.26785714285714285, 0.017857142857142856,
        0.26785714285714285, 0.017857142857142856,
        0.30357142857142855, 0.017857142857142856,
        0.30357142857142855, 0.017857142857142856,
        0.3392857142857143, 0.017857142857142856,
        0.3392857142857143, 0.017857142857142856,
        0.375, 0.017857142857142856,
        0.375, 0.017857142857142856,
        0.4107142857142857, 0.017857142857142856,
        0.4107142857142857, 0.017857142857142856,
        0.44642857142857145, 0.017857142857142856,
        0.44642857142857145, 0.017857142857142856,
        0.48214285714285715, 0.017857142857142856,
        0.48214285714285715, 0.017857142857142856,
        0.5178571428571429, 0.017857142857142856,
        0.5178571428571429, 0.017857142857142856,
        0.5535714285714286, 0.017857142857142856,
        0.5535714285714286, 0.017857142857142856,
        0.5892857142857143, 0.017857142857142856,
        0.5892857142857143, 0.017857142857142856,
        0.625, 0.017857142857142856,
        0.625, 0.017857142857142856,
        0.6607142857142857, 0.017857142857142856,
        0.6607142857142857, 0.017857142857142856,
        0.6964285714285714, 0.017857142857142856,
        0.6964285714285714, 0.017857142857142856,
        0.7321428571428571, 0.017857142857142856,
        0.7321428571428571, 0.017857142857142856,
        0.7678571428571429, 0.017857142857142856,
        0.7678571428571429, 0.017857142857142856,
        0.8035714285714286, 0.017857142857142856,
        0.8035714285714286, 0.017857142857142856,
        0.8392857142857143, 0.017857142857142856,
        0.8392857142857143, 0.017857142857142856,
        0.875, 0.017857142857142856,
        0.875, 0.017857142857142856,
        0.9107142857142857, 0.017857142857142856,
        0.9107142857142857, 0.017857142857142856,
        0.9464285714285714, 0.017857142857142856,
        0.9464285714285714, 0.017857142857142856,
        0.9821428571428571, 0.017857142857142856,
        0.9821428571428571, 0.017857142857142856,
        0.017857142857142856, 0.05357142857142857,
        0.017857142857142856, 0.05357142857142857,
        0.05357142857142857, 0.05357142857142857,
        0.05357142857142857, 0.05357142857142857,
        0.08928571428571429, 0.05357142857142857,
        0.08928571428571429, 0.05357142857142857,
        0.125, 0.05357142857142857,
        0.125, 0.05357142857142857,
        0.16071428571428573, 0.05357142857142857,
        0.16071428571428573, 0.05357142857142857,
        0.19642857142857142, 0.05357142857142857,
        0.19642857142857142, 0.05357142857142857,
        0.23214285714285715, 0.05357142857142857,
        0.23214285714285715, 0.05357142857142857,
        0.26785714285714285, 0.05357142857142857,
        0.26785714285714285, 0.05357142857142857,
        0.30357142857142855, 0.05357142857142857,
        0.30357142857142855, 0.05357142857142857,
        0.3392857142857143, 0.05357142857142857,
        0.3392857142857143, 0.05357142857142857,
        0.375, 0.05357142857142857,
        0.375, 0.05357142857142857,
        0.4107142857142857, 0.05357142857142857,
        0.4107142857142857, 0.05357142857142857,
        0.44642857142857145, 0.05357142857142857,
        0.44642857142857145, 0.05357142857142857,
        0.48214285714285715, 0.05357142857142857,
        0.48214285714285715, 0.05357142857142857,
        0.5178571428571429, 0.05357142857142857,
        0.5178571428571429, 0.05357142857142857,
        0.5535714285714286, 0.05357142857142857,
        0.5535714285714286, 0.05357142857142857,
        0.5892857142857143, 0.05357142857142857,
        0.5892857142857143, 0.05357142857142857,
        0.625, 0.05357142857142857,
        0.625, 0.05357142857142857,
        0.6607142857142857, 0.05357142857142857,
        0.6607142857142857, 0.05357142857142857,
        0.6964285714285714, 0.05357142857142857,
        0.6964285714285714, 0.05357142857142857,
        0.7321428571428571, 0.05357142857142857,
        0.7321428571428571, 0.05357142857142857,
        0.7678571428571429, 0.05357142857142857,
        0.7678571428571429, 0.05357142857142857,
        0.8035714285714286, 0.05357142857142857,
        0.8035714285714286, 0.05357142857142857,
        0.8392857142857143, 0.05357142857142857,
        0.8392857142857143, 0.05357142857142857,
        0.875, 0.05357142857142857,
        0.875, 0.05357142857142857,
        0.9107142857142857, 0.05357142857142857,
        0.9107142857142857, 0.05357142857142857,
        0.9464285714285714, 0.05357142857142857,
        0.9464285714285714, 0.05357142857142857,
        0.9821428571428571, 0.05357142857142857,
        0.9821428571428571, 0.05357142857142857,
        0.017857142857142856, 0.08928571428571429,
        0.017857142857142856, 0.08928571428571429,
        0.05357142857142857, 0.08928571428571429,
        0.05357142857142857, 0.08928571428571429,
        0.08928571428571429, 0.08928571428571429,
        0.08928571428571429, 0.08928571428571429,
        0.125, 0.08928571428571429,
        0.125, 0.08928571428571429,
        0.16071428571428573, 0.08928571428571429,
        0.16071428571428573, 0.08928571428571429,
        0.19642857142857142, 0.08928571428571429,
        0.19642857142857142, 0.08928571428571429,
        0.23214285714285715, 0.08928571428571429,
        0.23214285714285715, 0.08928571428571429,
        0.26785714285714285, 0.08928571428571429,
        0.26785714285714285, 0.08928571428571429,
        0.30357142857142855, 0.08928571428571429,
        0.30357142857142855, 0.08928571428571429,
        0.3392857142857143, 0.08928571428571429,
        0.3392857142857143, 0.08928571428571429,
        0.375, 0.08928571428571429,
        0.375, 0.08928571428571429,
        0.4107142857142857, 0.08928571428571429,
        0.4107142857142857, 0.08928571428571429,
        0.44642857142857145, 0.08928571428571429,
        0.44642857142857145, 0.08928571428571429,
        0.48214285714285715, 0.08928571428571429,
        0.48214285714285715, 0.08928571428571429,
        0.5178571428571429, 0.08928571428571429,
        0.5178571428571429, 0.08928571428571429,
        0.5535714285714286, 0.08928571428571429,
        0.5535714285714286, 0.08928571428571429,
        0.5892857142857143, 0.08928571428571429,
        0.5892857142857143, 0.08928571428571429,
        0.625, 0.08928571428571429,
        0.625, 0.08928571428571429,
        0.6607142857142857, 0.08928571428571429,
        0.6607142857142857, 0.08928571428571429,
        0.6964285714285714, 0.08928571428571429,
        0.6964285714285714, 0.08928571428571429,
        0.7321428571428571, 0.08928571428571429,
        0.7321428571428571, 0.08928571428571429,
        0.7678571428571429, 0.08928571428571429,
        0.7678571428571429, 0.08928571428571429,
        0.8035714285714286, 0.08928571428571429,
        0.8035714285714286, 0.08928571428571429,
        0.8392857142857143, 0.08928571428571429,
        0.8392857142857143, 0.08928571428571429,
        0.875, 0.08928571428571429,
        0.875, 0.08928571428571429,
        0.9107142857142857, 0.08928571428571429,
        0.9107142857142857, 0.08928571428571429,
        0.9464285714285714, 0.08928571428571429,
        0.9464285714285714, 0.08928571428571429,
        0.9821428571428571, 0.08928571428571429,
        0.9821428571428571, 0.08928571428571429,
        0.017857142857142856, 0.125,
        0.017857142857142856, 0.125,
        0.05357142857142857, 0.125,
        0.05357142857142857, 0.125,
        0.08928571428571429, 0.125,
        0.08928571428571429, 0.125,
        0.125, 0.125,
        0.125, 0.125,
        0.16071428571428573, 0.125,
        0.16071428571428573, 0.125,
        0.19642857142857142, 0.125,
        0.19642857142857142, 0.125,
        0.23214285714285715, 0.125,
        0.23214285714285715, 0.125,
        0.26785714285714285, 0.125,
        0.26785714285714285, 0.125,
        0.30357142857142855, 0.125,
        0.30357142857142855, 0.125,
        0.3392857142857143, 0.125,
        0.3392857142857143, 0.125,
        0.375, 0.125,
        0.375, 0.125,
        0.4107142857142857, 0.125,
        0.4107142857142857, 0.125,
        0.44642857142857145, 0.125,
        0.44642857142857145, 0.125,
        0.48214285714285715, 0.125,
        0.48214285714285715, 0.125,
        0.5178571428571429, 0.125,
        0.5178571428571429, 0.125,
        0.5535714285714286, 0.125,
        0.5535714285714286, 0.125,
        0.5892857142857143, 0.125,
        0.5892857142857143, 0.125,
        0.625, 0.125,
        0.625, 0.125,
        0.6607142857142857, 0.125,
        0.6607142857142857, 0.125,
        0.6964285714285714, 0.125,
        0.6964285714285714, 0.125,
        0.7321428571428571, 0.125,
        0.7321428571428571, 0.125,
        0.7678571428571429, 0.125,
        0.7678571428571429, 0.125,
        0.8035714285714286, 0.125,
        0.8035714285714286, 0.125,
        0.8392857142857143, 0.125,
        0.8392857142857143, 0.125,
        0.875, 0.125,
        0.875, 0.125,
        0.9107142857142857, 0.125,
        0.9107142857142857, 0.125,
        0.9464285714285714, 0.125,
        0.9464285714285714, 0.125,
        0.9821428571428571, 0.125,
        0.9821428571428571, 0.125,
        0.017857142857142856, 0.16071428571428573,
        0.017857142857142856, 0.16071428571428573,
        0.05357142857142857, 0.16071428571428573,
        0.05357142857142857, 0.16071428571428573,
        0.08928571428571429, 0.16071428571428573,
        0.08928571428571429, 0.16071428571428573,
        0.125, 0.16071428571428573,
        0.125, 0.16071428571428573,
        0.16071428571428573, 0.16071428571428573,
        0.16071428571428573, 0.16071428571428573,
        0.19642857142857142, 0.16071428571428573,
        0.19642857142857142, 0.16071428571428573,
        0.23214285714285715, 0.16071428571428573,
        0.23214285714285715, 0.16071428571428573,
        0.26785714285714285, 0.16071428571428573,
        0.26785714285714285, 0.16071428571428573,
        0.30357142857142855, 0.16071428571428573,
        0.30357142857142855, 0.16071428571428573,
        0.3392857142857143, 0.16071428571428573,
        0.3392857142857143, 0.16071428571428573,
        0.375, 0.16071428571428573,
        0.375, 0.16071428571428573,
        0.4107142857142857, 0.16071428571428573,
        0.4107142857142857, 0.16071428571428573,
        0.44642857142857145, 0.16071428571428573,
        0.44642857142857145, 0.16071428571428573,
        0.48214285714285715, 0.16071428571428573,
        0.48214285714285715, 0.16071428571428573,
        0.5178571428571429, 0.16071428571428573,
        0.5178571428571429, 0.16071428571428573,
        0.5535714285714286, 0.16071428571428573,
        0.5535714285714286, 0.16071428571428573,
        0.5892857142857143, 0.16071428571428573,
        0.5892857142857143, 0.16071428571428573,
        0.625, 0.16071428571428573,
        0.625, 0.16071428571428573,
        0.6607142857142857, 0.16071428571428573,
        0.6607142857142857, 0.16071428571428573,
        0.6964285714285714, 0.16071428571428573,
        0.6964285714285714, 0.16071428571428573,
        0.7321428571428571, 0.16071428571428573,
        0.7321428571428571, 0.16071428571428573,
        0.7678571428571429, 0.16071428571428573,
        0.7678571428571429, 0.16071428571428573,
        0.8035714285714286, 0.16071428571428573,
        0.8035714285714286, 0.16071428571428573,
        0.8392857142857143, 0.16071428571428573,
        0.8392857142857143, 0.16071428571428573,
        0.875, 0.16071428571428573,
        0.875, 0.16071428571428573,
        0.9107142857142857, 0.16071428571428573,
        0.9107142857142857, 0.16071428571428573,
        0.9464285714285714, 0.16071428571428573,
        0.9464285714285714, 0.16071428571428573,
        0.9821428571428571, 0.16071428571428573,
        0.9821428571428571, 0.16071428571428573,
        0.017857142857142856, 0.19642857142857142,
        0.017857142857142856, 0.19642857142857142,
        0.05357142857142857, 0.19642857142857142,
        0.05357142857142857, 0.19642857142857142,
        0.08928571428571429, 0.19642857142857142,
        0.08928571428571429, 0.19642857142857142,
        0.125, 0.19642857142857142,
        0.125, 0.19642857142857142,
        0.16071428571428573, 0.19642857142857142,
        0.16071428571428573, 0.19642857142857142,
        0.19642857142857142, 0.19642857142857142,
        0.19642857142857142, 0.19642857142857142,
        0.23214285714285715, 0.19642857142857142,
        0.23214285714285715, 0.19642857142857142,
        0.26785714285714285, 0.19642857142857142,
        0.26785714285714285, 0.19642857142857142,
        0.30357142857142855, 0.19642857142857142,
        0.30357142857142855, 0.19642857142857142,
        0.3392857142857143, 0.19642857142857142,
        0.3392857142857143, 0.19642857142857142,
        0.375, 0.19642857142857142,
        0.375, 0.19642857142857142,
        0.4107142857142857, 0.19642857142857142,
        0.4107142857142857, 0.19642857142857142,
        0.44642857142857145, 0.19642857142857142,
        0.44642857142857145, 0.19642857142857142,
        0.48214285714285715, 0.19642857142857142,
        0.48214285714285715, 0.19642857142857142,
        0.5178571428571429, 0.19642857142857142,
        0.5178571428571429, 0.19642857142857142,
        0.5535714285714286, 0.19642857142857142,
        0.5535714285714286, 0.19642857142857142,
        0.5892857142857143, 0.19642857142857142,
        0.5892857142857143, 0.19642857142857142,
        0.625, 0.19642857142857142,
        0.625, 0.19642857142857142,
        0.6607142857142857, 0.19642857142857142,
        0.6607142857142857, 0.19642857142857142,
        0.6964285714285714, 0.19642857142857142,
        0.6964285714285714, 0.19642857142857142,
        0.7321428571428571, 0.19642857142857142,
        0.7321428571428571, 0.19642857142857142,
        0.7678571428571429, 0.19642857142857142,
        0.7678571428571429, 0.19642857142857142,
        0.8035714285714286, 0.19642857142857142,
        0.8035714285714286, 0.19642857142857142,
        0.8392857142857143, 0.19642857142857142,
        0.8392857142857143, 0.19642857142857142,
        0.875, 0.19642857142857142,
        0.875, 0.19642857142857142,
        0.9107142857142857, 0.19642857142857142,
        0.9107142857142857, 0.19642857142857142,
        0.9464285714285714, 0.19642857142857142,
        0.9464285714285714, 0.19642857142857142,
        0.9821428571428571, 0.19642857142857142,
        0.9821428571428571, 0.19642857142857142,
        0.017857142857142856, 0.23214285714285715,
        0.017857142857142856, 0.23214285714285715,
        0.05357142857142857, 0.23214285714285715,
        0.05357142857142857, 0.23214285714285715,
        0.08928571428571429, 0.23214285714285715,
        0.08928571428571429, 0.23214285714285715,
        0.125, 0.23214285714285715,
        0.125, 0.23214285714285715,
        0.16071428571428573, 0.23214285714285715,
        0.16071428571428573, 0.23214285714285715,
        0.19642857142857142, 0.23214285714285715,
        0.19642857142857142, 0.23214285714285715,
        0.23214285714285715, 0.23214285714285715,
        0.23214285714285715, 0.23214285714285715,
        0.26785714285714285, 0.23214285714285715,
        0.26785714285714285, 0.23214285714285715,
        0.30357142857142855, 0.23214285714285715,
        0.30357142857142855, 0.23214285714285715,
        0.3392857142857143, 0.23214285714285715,
        0.3392857142857143, 0.23214285714285715,
        0.375, 0.23214285714285715,
        0.375, 0.23214285714285715,
        0.4107142857142857, 0.23214285714285715,
        0.4107142857142857, 0.23214285714285715,
        0.44642857142857145, 0.23214285714285715,
        0.44642857142857145, 0.23214285714285715,
        0.48214285714285715, 0.23214285714285715,
        0.48214285714285715, 0.23214285714285715,
        0.5178571428571429, 0.23214285714285715,
        0.5178571428571429, 0.23214285714285715,
        0.5535714285714286, 0.23214285714285715,
        0.5535714285714286, 0.23214285714285715,
        0.5892857142857143, 0.23214285714285715,
        0.5892857142857143, 0.23214285714285715,
        0.625, 0.23214285714285715,
        0.625, 0.23214285714285715,
        0.6607142857142857, 0.23214285714285715,
        0.6607142857142857, 0.23214285714285715,
        0.6964285714285714, 0.23214285714285715,
        0.6964285714285714, 0.23214285714285715,
        0.7321428571428571, 0.23214285714285715,
        0.7321428571428571, 0.23214285714285715,
        0.7678571428571429, 0.23214285714285715,
        0.7678571428571429, 0.23214285714285715,
        0.8035714285714286, 0.23214285714285715,
        0.8035714285714286, 0.23214285714285715,
        0.8392857142857143, 0.23214285714285715,
        0.8392857142857143, 0.23214285714285715,
        0.875, 0.23214285714285715,
        0.875, 0.23214285714285715,
        0.9107142857142857, 0.23214285714285715,
        0.9107142857142857, 0.23214285714285715,
        0.9464285714285714, 0.23214285714285715,
        0.9464285714285714, 0.23214285714285715,
        0.9821428571428571, 0.23214285714285715,
        0.9821428571428571, 0.23214285714285715,
        0.017857142857142856, 0.26785714285714285,
        0.017857142857142856, 0.26785714285714285,
        0.05357142857142857, 0.26785714285714285,
        0.05357142857142857, 0.26785714285714285,
        0.08928571428571429, 0.26785714285714285,
        0.08928571428571429, 0.26785714285714285,
        0.125, 0.26785714285714285,
        0.125, 0.26785714285714285,
        0.16071428571428573, 0.26785714285714285,
        0.16071428571428573, 0.26785714285714285,
        0.19642857142857142, 0.26785714285714285,
        0.19642857142857142, 0.26785714285714285,
        0.23214285714285715, 0.26785714285714285,
        0.23214285714285715, 0.26785714285714285,
        0.26785714285714285, 0.26785714285714285,
        0.26785714285714285, 0.26785714285714285,
        0.30357142857142855, 0.26785714285714285,
        0.30357142857142855, 0.26785714285714285,
        0.3392857142857143, 0.26785714285714285,
        0.3392857142857143, 0.26785714285714285,
        0.375, 0.26785714285714285,
        0.375, 0.26785714285714285,
        0.4107142857142857, 0.26785714285714285,
        0.4107142857142857, 0.26785714285714285,
        0.44642857142857145, 0.26785714285714285,
        0.44642857142857145, 0.26785714285714285,
        0.48214285714285715, 0.26785714285714285,
        0.48214285714285715, 0.26785714285714285,
        0.5178571428571429, 0.26785714285714285,
        0.5178571428571429, 0.26785714285714285,
        0.5535714285714286, 0.26785714285714285,
        0.5535714285714286, 0.26785714285714285,
        0.5892857142857143, 0.26785714285714285,
        0.5892857142857143, 0.26785714285714285,
        0.625, 0.26785714285714285,
        0.625, 0.26785714285714285,
        0.6607142857142857, 0.26785714285714285,
        0.6607142857142857, 0.26785714285714285,
        0.6964285714285714, 0.26785714285714285,
        0.6964285714285714, 0.26785714285714285,
        0.7321428571428571, 0.26785714285714285,
        0.7321428571428571, 0.26785714285714285,
        0.7678571428571429, 0.26785714285714285,
        0.7678571428571429, 0.26785714285714285,
        0.8035714285714286, 0.26785714285714285,
        0.8035714285714286, 0.26785714285714285,
        0.8392857142857143, 0.26785714285714285,
        0.8392857142857143, 0.26785714285714285,
        0.875, 0.26785714285714285,
        0.875, 0.26785714285714285,
        0.9107142857142857, 0.26785714285714285,
        0.9107142857142857, 0.26785714285714285,
        0.9464285714285714, 0.26785714285714285,
        0.9464285714285714, 0.26785714285714285,
        0.9821428571428571, 0.26785714285714285,
        0.9821428571428571, 0.26785714285714285,
        0.017857142857142856, 0.30357142857142855,
        0.017857142857142856, 0.30357142857142855,
        0.05357142857142857, 0.30357142857142855,
        0.05357142857142857, 0.30357142857142855,
        0.08928571428571429, 0.30357142857142855,
        0.08928571428571429, 0.30357142857142855,
        0.125, 0.30357142857142855,
        0.125, 0.30357142857142855,
        0.16071428571428573, 0.30357142857142855,
        0.16071428571428573, 0.30357142857142855,
        0.19642857142857142, 0.30357142857142855,
        0.19642857142857142, 0.30357142857142855,
        0.23214285714285715, 0.30357142857142855,
        0.23214285714285715, 0.30357142857142855,
        0.26785714285714285, 0.30357142857142855,
        0.26785714285714285, 0.30357142857142855,
        0.30357142857142855, 0.30357142857142855,
        0.30357142857142855, 0.30357142857142855,
        0.3392857142857143, 0.30357142857142855,
        0.3392857142857143, 0.30357142857142855,
        0.375, 0.30357142857142855,
        0.375, 0.30357142857142855,
        0.4107142857142857, 0.30357142857142855,
        0.4107142857142857, 0.30357142857142855,
        0.44642857142857145, 0.30357142857142855,
        0.44642857142857145, 0.30357142857142855,
        0.48214285714285715, 0.30357142857142855,
        0.48214285714285715, 0.30357142857142855,
        0.5178571428571429, 0.30357142857142855,
        0.5178571428571429, 0.30357142857142855,
        0.5535714285714286, 0.30357142857142855,
        0.5535714285714286, 0.30357142857142855,
        0.5892857142857143, 0.30357142857142855,
        0.5892857142857143, 0.30357142857142855,
        0.625, 0.30357142857142855,
        0.625, 0.30357142857142855,
        0.6607142857142857, 0.30357142857142855,
        0.6607142857142857, 0.30357142857142855,
        0.6964285714285714, 0.30357142857142855,
        0.6964285714285714, 0.30357142857142855,
        0.7321428571428571, 0.30357142857142855,
        0.7321428571428571, 0.30357142857142855,
        0.7678571428571429, 0.30357142857142855,
        0.7678571428571429, 0.30357142857142855,
        0.8035714285714286, 0.30357142857142855,
        0.8035714285714286, 0.30357142857142855,
        0.8392857142857143, 0.30357142857142855,
        0.8392857142857143, 0.30357142857142855,
        0.875, 0.30357142857142855,
        0.875, 0.30357142857142855,
        0.9107142857142857, 0.30357142857142855,
        0.9107142857142857, 0.30357142857142855,
        0.9464285714285714, 0.30357142857142855,
        0.9464285714285714, 0.30357142857142855,
        0.9821428571428571, 0.30357142857142855,
        0.9821428571428571, 0.30357142857142855,
        0.017857142857142856, 0.3392857142857143,
        0.017857142857142856, 0.3392857142857143,
        0.05357142857142857, 0.3392857142857143,
        0.05357142857142857, 0.3392857142857143,
        0.08928571428571429, 0.3392857142857143,
        0.08928571428571429, 0.3392857142857143,
        0.125, 0.3392857142857143,
        0.125, 0.3392857142857143,
        0.16071428571428573, 0.3392857142857143,
        0.16071428571428573, 0.3392857142857143,
        0.19642857142857142, 0.3392857142857143,
        0.19642857142857142, 0.3392857142857143,
        0.23214285714285715, 0.3392857142857143,
        0.23214285714285715, 0.3392857142857143,
        0.26785714285714285, 0.3392857142857143,
        0.26785714285714285, 0.3392857142857143,
        0.30357142857142855, 0.3392857142857143,
        0.30357142857142855, 0.3392857142857143,
        0.3392857142857143, 0.3392857142857143,
        0.3392857142857143, 0.3392857142857143,
        0.375, 0.3392857142857143,
        0.375, 0.3392857142857143,
        0.4107142857142857, 0.3392857142857143,
        0.4107142857142857, 0.3392857142857143,
        0.44642857142857145, 0.3392857142857143,
        0.44642857142857145, 0.3392857142857143,
        0.48214285714285715, 0.3392857142857143,
        0.48214285714285715, 0.3392857142857143,
        0.5178571428571429, 0.3392857142857143,
        0.5178571428571429, 0.3392857142857143,
        0.5535714285714286, 0.3392857142857143,
        0.5535714285714286, 0.3392857142857143,
        0.5892857142857143, 0.3392857142857143,
        0.5892857142857143, 0.3392857142857143,
        0.625, 0.3392857142857143,
        0.625, 0.3392857142857143,
        0.6607142857142857, 0.3392857142857143,
        0.6607142857142857, 0.3392857142857143,
        0.6964285714285714, 0.3392857142857143,
        0.6964285714285714, 0.3392857142857143,
        0.7321428571428571, 0.3392857142857143,
        0.7321428571428571, 0.3392857142857143,
        0.7678571428571429, 0.3392857142857143,
        0.7678571428571429, 0.3392857142857143,
        0.8035714285714286, 0.3392857142857143,
        0.8035714285714286, 0.3392857142857143,
        0.8392857142857143, 0.3392857142857143,
        0.8392857142857143, 0.3392857142857143,
        0.875, 0.3392857142857143,
        0.875, 0.3392857142857143,
        0.9107142857142857, 0.3392857142857143,
        0.9107142857142857, 0.3392857142857143,
        0.9464285714285714, 0.3392857142857143,
        0.9464285714285714, 0.3392857142857143,
        0.9821428571428571, 0.3392857142857143,
        0.9821428571428571, 0.3392857142857143,
        0.017857142857142856, 0.375,
        0.017857142857142856, 0.375,
        0.05357142857142857, 0.375,
        0.05357142857142857, 0.375,
        0.08928571428571429, 0.375,
        0.08928571428571429, 0.375,
        0.125, 0.375,
        0.125, 0.375,
        0.16071428571428573, 0.375,
        0.16071428571428573, 0.375,
        0.19642857142857142, 0.375,
        0.19642857142857142, 0.375,
        0.23214285714285715, 0.375,
        0.23214285714285715, 0.375,
        0.26785714285714285, 0.375,
        0.26785714285714285, 0.375,
        0.30357142857142855, 0.375,
        0.30357142857142855, 0.375,
        0.3392857142857143, 0.375,
        0.3392857142857143, 0.375,
        0.375, 0.375,
        0.375, 0.375,
        0.4107142857142857, 0.375,
        0.4107142857142857, 0.375,
        0.44642857142857145, 0.375,
        0.44642857142857145, 0.375,
        0.48214285714285715, 0.375,
        0.48214285714285715, 0.375,
        0.5178571428571429, 0.375,
        0.5178571428571429, 0.375,
        0.5535714285714286, 0.375,
        0.5535714285714286, 0.375,
        0.5892857142857143, 0.375,
        0.5892857142857143, 0.375,
        0.625, 0.375,
        0.625, 0.375,
        0.6607142857142857, 0.375,
        0.6607142857142857, 0.375,
        0.6964285714285714, 0.375,
        0.6964285714285714, 0.375,
        0.7321428571428571, 0.375,
        0.7321428571428571, 0.375,
        0.7678571428571429, 0.375,
        0.7678571428571429, 0.375,
        0.8035714285714286, 0.375,
        0.8035714285714286, 0.375,
        0.8392857142857143, 0.375,
        0.8392857142857143, 0.375,
        0.875, 0.375,
        0.875, 0.375,
        0.9107142857142857, 0.375,
        0.9107142857142857, 0.375,
        0.9464285714285714, 0.375,
        0.9464285714285714, 0.375,
        0.9821428571428571, 0.375,
        0.9821428571428571, 0.375,
        0.017857142857142856, 0.4107142857142857,
        0.017857142857142856, 0.4107142857142857,
        0.05357142857142857, 0.4107142857142857,
        0.05357142857142857, 0.4107142857142857,
        0.08928571428571429, 0.4107142857142857,
        0.08928571428571429, 0.4107142857142857,
        0.125, 0.4107142857142857,
        0.125, 0.4107142857142857,
        0.16071428571428573, 0.4107142857142857,
        0.16071428571428573, 0.4107142857142857,
        0.19642857142857142, 0.4107142857142857,
        0.19642857142857142, 0.4107142857142857,
        0.23214285714285715, 0.4107142857142857,
        0.23214285714285715, 0.4107142857142857,
        0.26785714285714285, 0.4107142857142857,
        0.26785714285714285, 0.4107142857142857,
        0.30357142857142855, 0.4107142857142857,
        0.30357142857142855, 0.4107142857142857,
        0.3392857142857143, 0.4107142857142857,
        0.3392857142857143, 0.4107142857142857,
        0.375, 0.4107142857142857,
        0.375, 0.4107142857142857,
        0.4107142857142857, 0.4107142857142857,
        0.4107142857142857, 0.4107142857142857,
        0.44642857142857145, 0.4107142857142857,
        0.44642857142857145, 0.4107142857142857,
        0.48214285714285715, 0.4107142857142857,
        0.48214285714285715, 0.4107142857142857,
        0.5178571428571429, 0.4107142857142857,
        0.5178571428571429, 0.4107142857142857,
        0.5535714285714286, 0.4107142857142857,
        0.5535714285714286, 0.4107142857142857,
        0.5892857142857143, 0.4107142857142857,
        0.5892857142857143, 0.4107142857142857,
        0.625, 0.4107142857142857,
        0.625, 0.4107142857142857,
        0.6607142857142857, 0.4107142857142857,
        0.6607142857142857, 0.4107142857142857,
        0.6964285714285714, 0.4107142857142857,
        0.6964285714285714, 0.4107142857142857,
        0.7321428571428571, 0.4107142857142857,
        0.7321428571428571, 0.4107142857142857,
        0.7678571428571429, 0.4107142857142857,
        0.7678571428571429, 0.4107142857142857,
        0.8035714285714286, 0.4107142857142857,
        0.8035714285714286, 0.4107142857142857,
        0.8392857142857143, 0.4107142857142857,
        0.8392857142857143, 0.4107142857142857,
        0.875, 0.4107142857142857,
        0.875, 0.4107142857142857,
        0.9107142857142857, 0.4107142857142857,
        0.9107142857142857, 0.4107142857142857,
        0.9464285714285714, 0.4107142857142857,
        0.9464285714285714, 0.4107142857142857,
        0.9821428571428571, 0.4107142857142857,
        0.9821428571428571, 0.4107142857142857,
        0.017857142857142856, 0.44642857142857145,
        0.017857142857142856, 0.44642857142857145,
        0.05357142857142857, 0.44642857142857145,
        0.05357142857142857, 0.44642857142857145,
        0.08928571428571429, 0.44642857142857145,
        0.08928571428571429, 0.44642857142857145,
        0.125, 0.44642857142857145,
        0.125, 0.44642857142857145,
        0.16071428571428573, 0.44642857142857145,
        0.16071428571428573, 0.44642857142857145,
        0.19642857142857142, 0.44642857142857145,
        0.19642857142857142, 0.44642857142857145,
        0.23214285714285715, 0.44642857142857145,
        0.23214285714285715, 0.44642857142857145,
        0.26785714285714285, 0.44642857142857145,
        0.26785714285714285, 0.44642857142857145,
        0.30357142857142855, 0.44642857142857145,
        0.30357142857142855, 0.44642857142857145,
        0.3392857142857143, 0.44642857142857145,
        0.3392857142857143, 0.44642857142857145,
        0.375, 0.44642857142857145,
        0.375, 0.44642857142857145,
        0.4107142857142857, 0.44642857142857145,
        0.4107142857142857, 0.44642857142857145,
        0.44642857142857145, 0.44642857142857145,
        0.44642857142857145, 0.44642857142857145,
        0.48214285714285715, 0.44642857142857145,
        0.48214285714285715, 0.44642857142857145,
        0.5178571428571429, 0.44642857142857145,
        0.5178571428571429, 0.44642857142857145,
        0.5535714285714286, 0.44642857142857145,
        0.5535714285714286, 0.44642857142857145,
        0.5892857142857143, 0.44642857142857145,
        0.5892857142857143, 0.44642857142857145,
        0.625, 0.44642857142857145,
        0.625, 0.44642857142857145,
        0.6607142857142857, 0.44642857142857145,
        0.6607142857142857, 0.44642857142857145,
        0.6964285714285714, 0.44642857142857145,
        0.6964285714285714, 0.44642857142857145,
        0.7321428571428571, 0.44642857142857145,
        0.7321428571428571, 0.44642857142857145,
        0.7678571428571429, 0.44642857142857145,
        0.7678571428571429, 0.44642857142857145,
        0.8035714285714286, 0.44642857142857145,
        0.8035714285714286, 0.44642857142857145,
        0.8392857142857143, 0.44642857142857145,
        0.8392857142857143, 0.44642857142857145,
        0.875, 0.44642857142857145,
        0.875, 0.44642857142857145,
        0.9107142857142857, 0.44642857142857145,
        0.9107142857142857, 0.44642857142857145,
        0.9464285714285714, 0.44642857142857145,
        0.9464285714285714, 0.44642857142857145,
        0.9821428571428571, 0.44642857142857145,
        0.9821428571428571, 0.44642857142857145,
        0.017857142857142856, 0.48214285714285715,
        0.017857142857142856, 0.48214285714285715,
        0.05357142857142857, 0.48214285714285715,
        0.05357142857142857, 0.48214285714285715,
        0.08928571428571429, 0.48214285714285715,
        0.08928571428571429, 0.48214285714285715,
        0.125, 0.48214285714285715,
        0.125, 0.48214285714285715,
        0.16071428571428573, 0.48214285714285715,
        0.16071428571428573, 0.48214285714285715,
        0.19642857142857142, 0.48214285714285715,
        0.19642857142857142, 0.48214285714285715,
        0.23214285714285715, 0.48214285714285715,
        0.23214285714285715, 0.48214285714285715,
        0.26785714285714285, 0.48214285714285715,
        0.26785714285714285, 0.48214285714285715,
        0.30357142857142855, 0.48214285714285715,
        0.30357142857142855, 0.48214285714285715,
        0.3392857142857143, 0.48214285714285715,
        0.3392857142857143, 0.48214285714285715,
        0.375, 0.48214285714285715,
        0.375, 0.48214285714285715,
        0.4107142857142857, 0.48214285714285715,
        0.4107142857142857, 0.48214285714285715,
        0.44642857142857145, 0.48214285714285715,
        0.44642857142857145, 0.48214285714285715,
        0.48214285714285715, 0.48214285714285715,
        0.48214285714285715, 0.48214285714285715,
        0.5178571428571429, 0.48214285714285715,
        0.5178571428571429, 0.48214285714285715,
        0.5535714285714286, 0.48214285714285715,
        0.5535714285714286, 0.48214285714285715,
        0.5892857142857143, 0.48214285714285715,
        0.5892857142857143, 0.48214285714285715,
        0.625, 0.48214285714285715,
        0.625, 0.48214285714285715,
        0.6607142857142857, 0.48214285714285715,
        0.6607142857142857, 0.48214285714285715,
        0.6964285714285714, 0.48214285714285715,
        0.6964285714285714, 0.48214285714285715,
        0.7321428571428571, 0.48214285714285715,
        0.7321428571428571, 0.48214285714285715,
        0.7678571428571429, 0.48214285714285715,
        0.7678571428571429, 0.48214285714285715,
        0.8035714285714286, 0.48214285714285715,
        0.8035714285714286, 0.48214285714285715,
        0.8392857142857143, 0.48214285714285715,
        0.8392857142857143, 0.48214285714285715,
        0.875, 0.48214285714285715,
        0.875, 0.48214285714285715,
        0.9107142857142857, 0.48214285714285715,
        0.9107142857142857, 0.48214285714285715,
        0.9464285714285714, 0.48214285714285715,
        0.9464285714285714, 0.48214285714285715,
        0.9821428571428571, 0.48214285714285715,
        0.9821428571428571, 0.48214285714285715,
        0.017857142857142856, 0.5178571428571429,
        0.017857142857142856, 0.5178571428571429,
        0.05357142857142857, 0.5178571428571429,
        0.05357142857142857, 0.5178571428571429,
        0.08928571428571429, 0.5178571428571429,
        0.08928571428571429, 0.5178571428571429,
        0.125, 0.5178571428571429,
        0.125, 0.5178571428571429,
        0.16071428571428573, 0.5178571428571429,
        0.16071428571428573, 0.5178571428571429,
        0.19642857142857142, 0.5178571428571429,
        0.19642857142857142, 0.5178571428571429,
        0.23214285714285715, 0.5178571428571429,
        0.23214285714285715, 0.5178571428571429,
        0.26785714285714285, 0.5178571428571429,
        0.26785714285714285, 0.5178571428571429,
        0.30357142857142855, 0.5178571428571429,
        0.30357142857142855, 0.5178571428571429,
        0.3392857142857143, 0.5178571428571429,
        0.3392857142857143, 0.5178571428571429,
        0.375, 0.5178571428571429,
        0.375, 0.5178571428571429,
        0.4107142857142857, 0.5178571428571429,
        0.4107142857142857, 0.5178571428571429,
        0.44642857142857145, 0.5178571428571429,
        0.44642857142857145, 0.5178571428571429,
        0.48214285714285715, 0.5178571428571429,
        0.48214285714285715, 0.5178571428571429,
        0.5178571428571429, 0.5178571428571429,
        0.5178571428571429, 0.5178571428571429,
        0.5535714285714286, 0.5178571428571429,
        0.5535714285714286, 0.5178571428571429,
        0.5892857142857143, 0.5178571428571429,
        0.5892857142857143, 0.5178571428571429,
        0.625, 0.5178571428571429,
        0.625, 0.5178571428571429,
        0.6607142857142857, 0.5178571428571429,
        0.6607142857142857, 0.5178571428571429,
        0.6964285714285714, 0.5178571428571429,
        0.6964285714285714, 0.5178571428571429,
        0.7321428571428571, 0.5178571428571429,
        0.7321428571428571, 0.5178571428571429,
        0.7678571428571429, 0.5178571428571429,
        0.7678571428571429, 0.5178571428571429,
        0.8035714285714286, 0.5178571428571429,
        0.8035714285714286, 0.5178571428571429,
        0.8392857142857143, 0.5178571428571429,
        0.8392857142857143, 0.5178571428571429,
        0.875, 0.5178571428571429,
        0.875, 0.5178571428571429,
        0.9107142857142857, 0.5178571428571429,
        0.9107142857142857, 0.5178571428571429,
        0.9464285714285714, 0.5178571428571429,
        0.9464285714285714, 0.5178571428571429,
        0.9821428571428571, 0.5178571428571429,
        0.9821428571428571, 0.5178571428571429,
        0.017857142857142856, 0.5535714285714286,
        0.017857142857142856, 0.5535714285714286,
        0.05357142857142857, 0.5535714285714286,
        0.05357142857142857, 0.5535714285714286,
        0.08928571428571429, 0.5535714285714286,
        0.08928571428571429, 0.5535714285714286,
        0.125, 0.5535714285714286,
        0.125, 0.5535714285714286,
        0.16071428571428573, 0.5535714285714286,
        0.16071428571428573, 0.5535714285714286,
        0.19642857142857142, 0.5535714285714286,
        0.19642857142857142, 0.5535714285714286,
        0.23214285714285715, 0.5535714285714286,
        0.23214285714285715, 0.5535714285714286,
        0.26785714285714285, 0.5535714285714286,
        0.26785714285714285, 0.5535714285714286,
        0.30357142857142855, 0.5535714285714286,
        0.30357142857142855, 0.5535714285714286,
        0.3392857142857143, 0.5535714285714286,
        0.3392857142857143, 0.5535714285714286,
        0.375, 0.5535714285714286,
        0.375, 0.5535714285714286,
        0.4107142857142857, 0.5535714285714286,
        0.4107142857142857, 0.5535714285714286,
        0.44642857142857145, 0.5535714285714286,
        0.44642857142857145, 0.5535714285714286,
        0.48214285714285715, 0.5535714285714286,
        0.48214285714285715, 0.5535714285714286,
        0.5178571428571429, 0.5535714285714286,
        0.5178571428571429, 0.5535714285714286,
        0.5535714285714286, 0.5535714285714286,
        0.5535714285714286, 0.5535714285714286,
        0.5892857142857143, 0.5535714285714286,
        0.5892857142857143, 0.5535714285714286,
        0.625, 0.5535714285714286,
        0.625, 0.5535714285714286,
        0.6607142857142857, 0.5535714285714286,
        0.6607142857142857, 0.5535714285714286,
        0.6964285714285714, 0.5535714285714286,
        0.6964285714285714, 0.5535714285714286,
        0.7321428571428571, 0.5535714285714286,
        0.7321428571428571, 0.5535714285714286,
        0.7678571428571429, 0.5535714285714286,
        0.7678571428571429, 0.5535714285714286,
        0.8035714285714286, 0.5535714285714286,
        0.8035714285714286, 0.5535714285714286,
        0.8392857142857143, 0.5535714285714286,
        0.8392857142857143, 0.5535714285714286,
        0.875, 0.5535714285714286,
        0.875, 0.5535714285714286,
        0.9107142857142857, 0.5535714285714286,
        0.9107142857142857, 0.5535714285714286,
        0.9464285714285714, 0.5535714285714286,
        0.9464285714285714, 0.5535714285714286,
        0.9821428571428571, 0.5535714285714286,
        0.9821428571428571, 0.5535714285714286,
        0.017857142857142856, 0.5892857142857143,
        0.017857142857142856, 0.5892857142857143,
        0.05357142857142857, 0.5892857142857143,
        0.05357142857142857, 0.5892857142857143,
        0.08928571428571429, 0.5892857142857143,
        0.08928571428571429, 0.5892857142857143,
        0.125, 0.5892857142857143,
        0.125, 0.5892857142857143,
        0.16071428571428573, 0.5892857142857143,
        0.16071428571428573, 0.5892857142857143,
        0.19642857142857142, 0.5892857142857143,
        0.19642857142857142, 0.5892857142857143,
        0.23214285714285715, 0.5892857142857143,
        0.23214285714285715, 0.5892857142857143,
        0.26785714285714285, 0.5892857142857143,
        0.26785714285714285, 0.5892857142857143,
        0.30357142857142855, 0.5892857142857143,
        0.30357142857142855, 0.5892857142857143,
        0.3392857142857143, 0.5892857142857143,
        0.3392857142857143, 0.5892857142857143,
        0.375, 0.5892857142857143,
        0.375, 0.5892857142857143,
        0.4107142857142857, 0.5892857142857143,
        0.4107142857142857, 0.5892857142857143,
        0.44642857142857145, 0.5892857142857143,
        0.44642857142857145, 0.5892857142857143,
        0.48214285714285715, 0.5892857142857143,
        0.48214285714285715, 0.5892857142857143,
        0.5178571428571429, 0.5892857142857143,
        0.5178571428571429, 0.5892857142857143,
        0.5535714285714286, 0.5892857142857143,
        0.5535714285714286, 0.5892857142857143,
        0.5892857142857143, 0.5892857142857143,
        0.5892857142857143, 0.5892857142857143,
        0.625, 0.5892857142857143,
        0.625, 0.5892857142857143,
        0.6607142857142857, 0.5892857142857143,
        0.6607142857142857, 0.5892857142857143,
        0.6964285714285714, 0.5892857142857143,
        0.6964285714285714, 0.5892857142857143,
        0.7321428571428571, 0.5892857142857143,
        0.7321428571428571, 0.5892857142857143,
        0.7678571428571429, 0.5892857142857143,
        0.7678571428571429, 0.5892857142857143,
        0.8035714285714286, 0.5892857142857143,
        0.8035714285714286, 0.5892857142857143,
        0.8392857142857143, 0.5892857142857143,
        0.8392857142857143, 0.5892857142857143,
        0.875, 0.5892857142857143,
        0.875, 0.5892857142857143,
        0.9107142857142857, 0.5892857142857143,
        0.9107142857142857, 0.5892857142857143,
        0.9464285714285714, 0.5892857142857143,
        0.9464285714285714, 0.5892857142857143,
        0.9821428571428571, 0.5892857142857143,
        0.9821428571428571, 0.5892857142857143,
        0.017857142857142856, 0.625,
        0.017857142857142856, 0.625,
        0.05357142857142857, 0.625,
        0.05357142857142857, 0.625,
        0.08928571428571429, 0.625,
        0.08928571428571429, 0.625,
        0.125, 0.625,
        0.125, 0.625,
        0.16071428571428573, 0.625,
        0.16071428571428573, 0.625,
        0.19642857142857142, 0.625,
        0.19642857142857142, 0.625,
        0.23214285714285715, 0.625,
        0.23214285714285715, 0.625,
        0.26785714285714285, 0.625,
        0.26785714285714285, 0.625,
        0.30357142857142855, 0.625,
        0.30357142857142855, 0.625,
        0.3392857142857143, 0.625,
        0.3392857142857143, 0.625,
        0.375, 0.625,
        0.375, 0.625,
        0.4107142857142857, 0.625,
        0.4107142857142857, 0.625,
        0.44642857142857145, 0.625,
        0.44642857142857145, 0.625,
        0.48214285714285715, 0.625,
        0.48214285714285715, 0.625,
        0.5178571428571429, 0.625,
        0.5178571428571429, 0.625,
        0.5535714285714286, 0.625,
        0.5535714285714286, 0.625,
        0.5892857142857143, 0.625,
        0.5892857142857143, 0.625,
        0.625, 0.625,
        0.625, 0.625,
        0.6607142857142857, 0.625,
        0.6607142857142857, 0.625,
        0.6964285714285714, 0.625,
        0.6964285714285714, 0.625,
        0.7321428571428571, 0.625,
        0.7321428571428571, 0.625,
        0.7678571428571429, 0.625,
        0.7678571428571429, 0.625,
        0.8035714285714286, 0.625,
        0.8035714285714286, 0.625,
        0.8392857142857143, 0.625,
        0.8392857142857143, 0.625,
        0.875, 0.625,
        0.875, 0.625,
        0.9107142857142857, 0.625,
        0.9107142857142857, 0.625,
        0.9464285714285714, 0.625,
        0.9464285714285714, 0.625,
        0.9821428571428571, 0.625,
        0.9821428571428571, 0.625,
        0.017857142857142856, 0.6607142857142857,
        0.017857142857142856, 0.6607142857142857,
        0.05357142857142857, 0.6607142857142857,
        0.05357142857142857, 0.6607142857142857,
        0.08928571428571429, 0.6607142857142857,
        0.08928571428571429, 0.6607142857142857,
        0.125, 0.6607142857142857,
        0.125, 0.6607142857142857,
        0.16071428571428573, 0.6607142857142857,
        0.16071428571428573, 0.6607142857142857,
        0.19642857142857142, 0.6607142857142857,
        0.19642857142857142, 0.6607142857142857,
        0.23214285714285715, 0.6607142857142857,
        0.23214285714285715, 0.6607142857142857,
        0.26785714285714285, 0.6607142857142857,
        0.26785714285714285, 0.6607142857142857,
        0.30357142857142855, 0.6607142857142857,
        0.30357142857142855, 0.6607142857142857,
        0.3392857142857143, 0.6607142857142857,
        0.3392857142857143, 0.6607142857142857,
        0.375, 0.6607142857142857,
        0.375, 0.6607142857142857,
        0.4107142857142857, 0.6607142857142857,
        0.4107142857142857, 0.6607142857142857,
        0.44642857142857145, 0.6607142857142857,
        0.44642857142857145, 0.6607142857142857,
        0.48214285714285715, 0.6607142857142857,
        0.48214285714285715, 0.6607142857142857,
        0.5178571428571429, 0.6607142857142857,
        0.5178571428571429, 0.6607142857142857,
        0.5535714285714286, 0.6607142857142857,
        0.5535714285714286, 0.6607142857142857,
        0.5892857142857143, 0.6607142857142857,
        0.5892857142857143, 0.6607142857142857,
        0.625, 0.6607142857142857,
        0.625, 0.6607142857142857,
        0.6607142857142857, 0.6607142857142857,
        0.6607142857142857, 0.6607142857142857,
        0.6964285714285714, 0.6607142857142857,
        0.6964285714285714, 0.6607142857142857,
        0.7321428571428571, 0.6607142857142857,
        0.7321428571428571, 0.6607142857142857,
        0.7678571428571429, 0.6607142857142857,
        0.7678571428571429, 0.6607142857142857,
        0.8035714285714286, 0.6607142857142857,
        0.8035714285714286, 0.6607142857142857,
        0.8392857142857143, 0.6607142857142857,
        0.8392857142857143, 0.6607142857142857,
        0.875, 0.6607142857142857,
        0.875, 0.6607142857142857,
        0.9107142857142857, 0.6607142857142857,
        0.9107142857142857, 0.6607142857142857,
        0.9464285714285714, 0.6607142857142857,
        0.9464285714285714, 0.6607142857142857,
        0.9821428571428571, 0.6607142857142857,
        0.9821428571428571, 0.6607142857142857,
        0.017857142857142856, 0.6964285714285714,
        0.017857142857142856, 0.6964285714285714,
        0.05357142857142857, 0.6964285714285714,
        0.05357142857142857, 0.6964285714285714,
        0.08928571428571429, 0.6964285714285714,
        0.08928571428571429, 0.6964285714285714,
        0.125, 0.6964285714285714,
        0.125, 0.6964285714285714,
        0.16071428571428573, 0.6964285714285714,
        0.16071428571428573, 0.6964285714285714,
        0.19642857142857142, 0.6964285714285714,
        0.19642857142857142, 0.6964285714285714,
        0.23214285714285715, 0.6964285714285714,
        0.23214285714285715, 0.6964285714285714,
        0.26785714285714285, 0.6964285714285714,
        0.26785714285714285, 0.6964285714285714,
        0.30357142857142855, 0.6964285714285714,
        0.30357142857142855, 0.6964285714285714,
        0.3392857142857143, 0.6964285714285714,
        0.3392857142857143, 0.6964285714285714,
        0.375, 0.6964285714285714,
        0.375, 0.6964285714285714,
        0.4107142857142857, 0.6964285714285714,
        0.4107142857142857, 0.6964285714285714,
        0.44642857142857145, 0.6964285714285714,
        0.44642857142857145, 0.6964285714285714,
        0.48214285714285715, 0.6964285714285714,
        0.48214285714285715, 0.6964285714285714,
        0.5178571428571429, 0.6964285714285714,
        0.5178571428571429, 0.6964285714285714,
        0.5535714285714286, 0.6964285714285714,
        0.5535714285714286, 0.6964285714285714,
        0.5892857142857143, 0.6964285714285714,
        0.5892857142857143, 0.6964285714285714,
        0.625, 0.6964285714285714,
        0.625, 0.6964285714285714,
        0.6607142857142857, 0.6964285714285714,
        0.6607142857142857, 0.6964285714285714,
        0.6964285714285714, 0.6964285714285714,
        0.6964285714285714, 0.6964285714285714,
        0.7321428571428571, 0.6964285714285714,
        0.7321428571428571, 0.6964285714285714,
        0.7678571428571429, 0.6964285714285714,
        0.7678571428571429, 0.6964285714285714,
        0.8035714285714286, 0.6964285714285714,
        0.8035714285714286, 0.6964285714285714,
        0.8392857142857143, 0.6964285714285714,
        0.8392857142857143, 0.6964285714285714,
        0.875, 0.6964285714285714,
        0.875, 0.6964285714285714,
        0.9107142857142857, 0.6964285714285714,
        0.9107142857142857, 0.6964285714285714,
        0.9464285714285714, 0.6964285714285714,
        0.9464285714285714, 0.6964285714285714,
        0.9821428571428571, 0.6964285714285714,
        0.9821428571428571, 0.6964285714285714,
        0.017857142857142856, 0.7321428571428571,
        0.017857142857142856, 0.7321428571428571,
        0.05357142857142857, 0.7321428571428571,
        0.05357142857142857, 0.7321428571428571,
        0.08928571428571429, 0.7321428571428571,
        0.08928571428571429, 0.7321428571428571,
        0.125, 0.7321428571428571,
        0.125, 0.7321428571428571,
        0.16071428571428573, 0.7321428571428571,
        0.16071428571428573, 0.7321428571428571,
        0.19642857142857142, 0.7321428571428571,
        0.19642857142857142, 0.7321428571428571,
        0.23214285714285715, 0.7321428571428571,
        0.23214285714285715, 0.7321428571428571,
        0.26785714285714285, 0.7321428571428571,
        0.26785714285714285, 0.7321428571428571,
        0.30357142857142855, 0.7321428571428571,
        0.30357142857142855, 0.7321428571428571,
        0.3392857142857143, 0.7321428571428571,
        0.3392857142857143, 0.7321428571428571,
        0.375, 0.7321428571428571,
        0.375, 0.7321428571428571,
        0.4107142857142857, 0.7321428571428571,
        0.4107142857142857, 0.7321428571428571,
        0.44642857142857145, 0.7321428571428571,
        0.44642857142857145, 0.7321428571428571,
        0.48214285714285715, 0.7321428571428571,
        0.48214285714285715, 0.7321428571428571,
        0.5178571428571429, 0.7321428571428571,
        0.5178571428571429, 0.7321428571428571,
        0.5535714285714286, 0.7321428571428571,
        0.5535714285714286, 0.7321428571428571,
        0.5892857142857143, 0.7321428571428571,
        0.5892857142857143, 0.7321428571428571,
        0.625, 0.7321428571428571,
        0.625, 0.7321428571428571,
        0.6607142857142857, 0.7321428571428571,
        0.6607142857142857, 0.7321428571428571,
        0.6964285714285714, 0.7321428571428571,
        0.6964285714285714, 0.7321428571428571,
        0.7321428571428571, 0.7321428571428571,
        0.7321428571428571, 0.7321428571428571,
        0.7678571428571429, 0.7321428571428571,
        0.7678571428571429, 0.7321428571428571,
        0.8035714285714286, 0.7321428571428571,
        0.8035714285714286, 0.7321428571428571,
        0.8392857142857143, 0.7321428571428571,
        0.8392857142857143, 0.7321428571428571,
        0.875, 0.7321428571428571,
        0.875, 0.7321428571428571,
        0.9107142857142857, 0.7321428571428571,
        0.9107142857142857, 0.7321428571428571,
        0.9464285714285714, 0.7321428571428571,
        0.9464285714285714, 0.7321428571428571,
        0.9821428571428571, 0.7321428571428571,
        0.9821428571428571, 0.7321428571428571,
        0.017857142857142856, 0.7678571428571429,
        0.017857142857142856, 0.7678571428571429,
        0.05357142857142857, 0.7678571428571429,
        0.05357142857142857, 0.7678571428571429,
        0.08928571428571429, 0.7678571428571429,
        0.08928571428571429, 0.7678571428571429,
        0.125, 0.7678571428571429,
        0.125, 0.7678571428571429,
        0.16071428571428573, 0.7678571428571429,
        0.16071428571428573, 0.7678571428571429,
        0.19642857142857142, 0.7678571428571429,
        0.19642857142857142, 0.7678571428571429,
        0.23214285714285715, 0.7678571428571429,
        0.23214285714285715, 0.7678571428571429,
        0.26785714285714285, 0.7678571428571429,
        0.26785714285714285, 0.7678571428571429,
        0.30357142857142855, 0.7678571428571429,
        0.30357142857142855, 0.7678571428571429,
        0.3392857142857143, 0.7678571428571429,
        0.3392857142857143, 0.7678571428571429,
        0.375, 0.7678571428571429,
        0.375, 0.7678571428571429,
        0.4107142857142857, 0.7678571428571429,
        0.4107142857142857, 0.7678571428571429,
        0.44642857142857145, 0.7678571428571429,
        0.44642857142857145, 0.7678571428571429,
        0.48214285714285715, 0.7678571428571429,
        0.48214285714285715, 0.7678571428571429,
        0.5178571428571429, 0.7678571428571429,
        0.5178571428571429, 0.7678571428571429,
        0.5535714285714286, 0.7678571428571429,
        0.5535714285714286, 0.7678571428571429,
        0.5892857142857143, 0.7678571428571429,
        0.5892857142857143, 0.7678571428571429,
        0.625, 0.7678571428571429,
        0.625, 0.7678571428571429,
        0.6607142857142857, 0.7678571428571429,
        0.6607142857142857, 0.7678571428571429,
        0.6964285714285714, 0.7678571428571429,
        0.6964285714285714, 0.7678571428571429,
        0.7321428571428571, 0.7678571428571429,
        0.7321428571428571, 0.7678571428571429,
        0.7678571428571429, 0.7678571428571429,
        0.7678571428571429, 0.7678571428571429,
        0.8035714285714286, 0.7678571428571429,
        0.8035714285714286, 0.7678571428571429,
        0.8392857142857143, 0.7678571428571429,
        0.8392857142857143, 0.7678571428571429,
        0.875, 0.7678571428571429,
        0.875, 0.7678571428571429,
        0.9107142857142857, 0.7678571428571429,
        0.9107142857142857, 0.7678571428571429,
        0.9464285714285714, 0.7678571428571429,
        0.9464285714285714, 0.7678571428571429,
        0.9821428571428571, 0.7678571428571429,
        0.9821428571428571, 0.7678571428571429,
        0.017857142857142856, 0.8035714285714286,
        0.017857142857142856, 0.8035714285714286,
        0.05357142857142857, 0.8035714285714286,
        0.05357142857142857, 0.8035714285714286,
        0.08928571428571429, 0.8035714285714286,
        0.08928571428571429, 0.8035714285714286,
        0.125, 0.8035714285714286,
        0.125, 0.8035714285714286,
        0.16071428571428573, 0.8035714285714286,
        0.16071428571428573, 0.8035714285714286,
        0.19642857142857142, 0.8035714285714286,
        0.19642857142857142, 0.8035714285714286,
        0.23214285714285715, 0.8035714285714286,
        0.23214285714285715, 0.8035714285714286,
        0.26785714285714285, 0.8035714285714286,
        0.26785714285714285, 0.8035714285714286,
        0.30357142857142855, 0.8035714285714286,
        0.30357142857142855, 0.8035714285714286,
        0.3392857142857143, 0.8035714285714286,
        0.3392857142857143, 0.8035714285714286,
        0.375, 0.8035714285714286,
        0.375, 0.8035714285714286,
        0.4107142857142857, 0.8035714285714286,
        0.4107142857142857, 0.8035714285714286,
        0.44642857142857145, 0.8035714285714286,
        0.44642857142857145, 0.8035714285714286,
        0.48214285714285715, 0.8035714285714286,
        0.48214285714285715, 0.8035714285714286,
        0.5178571428571429, 0.8035714285714286,
        0.5178571428571429, 0.8035714285714286,
        0.5535714285714286, 0.8035714285714286,
        0.5535714285714286, 0.8035714285714286,
        0.5892857142857143, 0.8035714285714286,
        0.5892857142857143, 0.8035714285714286,
        0.625, 0.8035714285714286,
        0.625, 0.8035714285714286,
        0.6607142857142857, 0.8035714285714286,
        0.6607142857142857, 0.8035714285714286,
        0.6964285714285714, 0.8035714285714286,
        0.6964285714285714, 0.8035714285714286,
        0.7321428571428571, 0.8035714285714286,
        0.7321428571428571, 0.8035714285714286,
        0.7678571428571429, 0.8035714285714286,
        0.7678571428571429, 0.8035714285714286,
        0.8035714285714286, 0.8035714285714286,
        0.8035714285714286, 0.8035714285714286,
        0.8392857142857143, 0.8035714285714286,
        0.8392857142857143, 0.8035714285714286,
        0.875, 0.8035714285714286,
        0.875, 0.8035714285714286,
        0.9107142857142857, 0.8035714285714286,
        0.9107142857142857, 0.8035714285714286,
        0.9464285714285714, 0.8035714285714286,
        0.9464285714285714, 0.8035714285714286,
        0.9821428571428571, 0.8035714285714286,
        0.9821428571428571, 0.8035714285714286,
        0.017857142857142856, 0.8392857142857143,
        0.017857142857142856, 0.8392857142857143,
        0.05357142857142857, 0.8392857142857143,
        0.05357142857142857, 0.8392857142857143,
        0.08928571428571429, 0.8392857142857143,
        0.08928571428571429, 0.8392857142857143,
        0.125, 0.8392857142857143,
        0.125, 0.8392857142857143,
        0.16071428571428573, 0.8392857142857143,
        0.16071428571428573, 0.8392857142857143,
        0.19642857142857142, 0.8392857142857143,
        0.19642857142857142, 0.8392857142857143,
        0.23214285714285715, 0.8392857142857143,
        0.23214285714285715, 0.8392857142857143,
        0.26785714285714285, 0.8392857142857143,
        0.26785714285714285, 0.8392857142857143,
        0.30357142857142855, 0.8392857142857143,
        0.30357142857142855, 0.8392857142857143,
        0.3392857142857143, 0.8392857142857143,
        0.3392857142857143, 0.8392857142857143,
        0.375, 0.8392857142857143,
        0.375, 0.8392857142857143,
        0.4107142857142857, 0.8392857142857143,
        0.4107142857142857, 0.8392857142857143,
        0.44642857142857145, 0.8392857142857143,
        0.44642857142857145, 0.8392857142857143,
        0.48214285714285715, 0.8392857142857143,
        0.48214285714285715, 0.8392857142857143,
        0.5178571428571429, 0.8392857142857143,
        0.5178571428571429, 0.8392857142857143,
        0.5535714285714286, 0.8392857142857143,
        0.5535714285714286, 0.8392857142857143,
        0.5892857142857143, 0.8392857142857143,
        0.5892857142857143, 0.8392857142857143,
        0.625, 0.8392857142857143,
        0.625, 0.8392857142857143,
        0.6607142857142857, 0.8392857142857143,
        0.6607142857142857, 0.8392857142857143,
        0.6964285714285714, 0.8392857142857143,
        0.6964285714285714, 0.8392857142857143,
        0.7321428571428571, 0.8392857142857143,
        0.7321428571428571, 0.8392857142857143,
        0.7678571428571429, 0.8392857142857143,
        0.7678571428571429, 0.8392857142857143,
        0.8035714285714286, 0.8392857142857143,
        0.8035714285714286, 0.8392857142857143,
        0.8392857142857143, 0.8392857142857143,
        0.8392857142857143, 0.8392857142857143,
        0.875, 0.8392857142857143,
        0.875, 0.8392857142857143,
        0.9107142857142857, 0.8392857142857143,
        0.9107142857142857, 0.8392857142857143,
        0.9464285714285714, 0.8392857142857143,
        0.9464285714285714, 0.8392857142857143,
        0.9821428571428571, 0.8392857142857143,
        0.9821428571428571, 0.8392857142857143,
        0.017857142857142856, 0.875,
        0.017857142857142856, 0.875,
        0.05357142857142857, 0.875,
        0.05357142857142857, 0.875,
        0.08928571428571429, 0.875,
        0.08928571428571429, 0.875,
        0.125, 0.875,
        0.125, 0.875,
        0.16071428571428573, 0.875,
        0.16071428571428573, 0.875,
        0.19642857142857142, 0.875,
        0.19642857142857142, 0.875,
        0.23214285714285715, 0.875,
        0.23214285714285715, 0.875,
        0.26785714285714285, 0.875,
        0.26785714285714285, 0.875,
        0.30357142857142855, 0.875,
        0.30357142857142855, 0.875,
        0.3392857142857143, 0.875,
        0.3392857142857143, 0.875,
        0.375, 0.875,
        0.375, 0.875,
        0.4107142857142857, 0.875,
        0.4107142857142857, 0.875,
        0.44642857142857145, 0.875,
        0.44642857142857145, 0.875,
        0.48214285714285715, 0.875,
        0.48214285714285715, 0.875,
        0.5178571428571429, 0.875,
        0.5178571428571429, 0.875,
        0.5535714285714286, 0.875,
        0.5535714285714286, 0.875,
        0.5892857142857143, 0.875,
        0.5892857142857143, 0.875,
        0.625, 0.875,
        0.625, 0.875,
        0.6607142857142857, 0.875,
        0.6607142857142857, 0.875,
        0.6964285714285714, 0.875,
        0.6964285714285714, 0.875,
        0.7321428571428571, 0.875,
        0.7321428571428571, 0.875,
        0.7678571428571429, 0.875,
        0.7678571428571429, 0.875,
        0.8035714285714286, 0.875,
        0.8035714285714286, 0.875,
        0.8392857142857143, 0.875,
        0.8392857142857143, 0.875,
        0.875, 0.875,
        0.875, 0.875,
        0.9107142857142857, 0.875,
        0.9107142857142857, 0.875,
        0.9464285714285714, 0.875,
        0.9464285714285714, 0.875,
        0.9821428571428571, 0.875,
        0.9821428571428571, 0.875,
        0.017857142857142856, 0.9107142857142857,
        0.017857142857142856, 0.9107142857142857,
        0.05357142857142857, 0.9107142857142857,
        0.05357142857142857, 0.9107142857142857,
        0.08928571428571429, 0.9107142857142857,
        0.08928571428571429, 0.9107142857142857,
        0.125, 0.9107142857142857,
        0.125, 0.9107142857142857,
        0.16071428571428573, 0.9107142857142857,
        0.16071428571428573, 0.9107142857142857,
        0.19642857142857142, 0.9107142857142857,
        0.19642857142857142, 0.9107142857142857,
        0.23214285714285715, 0.9107142857142857,
        0.23214285714285715, 0.9107142857142857,
        0.26785714285714285, 0.9107142857142857,
        0.26785714285714285, 0.9107142857142857,
        0.30357142857142855, 0.9107142857142857,
        0.30357142857142855, 0.9107142857142857,
        0.3392857142857143, 0.9107142857142857,
        0.3392857142857143, 0.9107142857142857,
        0.375, 0.9107142857142857,
        0.375, 0.9107142857142857,
        0.4107142857142857, 0.9107142857142857,
        0.4107142857142857, 0.9107142857142857,
        0.44642857142857145, 0.9107142857142857,
        0.44642857142857145, 0.9107142857142857,
        0.48214285714285715, 0.9107142857142857,
        0.48214285714285715, 0.9107142857142857,
        0.5178571428571429, 0.9107142857142857,
        0.5178571428571429, 0.9107142857142857,
        0.5535714285714286, 0.9107142857142857,
        0.5535714285714286, 0.9107142857142857,
        0.5892857142857143, 0.9107142857142857,
        0.5892857142857143, 0.9107142857142857,
        0.625, 0.9107142857142857,
        0.625, 0.9107142857142857,
        0.6607142857142857, 0.9107142857142857,
        0.6607142857142857, 0.9107142857142857,
        0.6964285714285714, 0.9107142857142857,
        0.6964285714285714, 0.9107142857142857,
        0.7321428571428571, 0.9107142857142857,
        0.7321428571428571, 0.9107142857142857,
        0.7678571428571429, 0.9107142857142857,
        0.7678571428571429, 0.9107142857142857,
        0.8035714285714286, 0.9107142857142857,
        0.8035714285714286, 0.9107142857142857,
        0.8392857142857143, 0.9107142857142857,
        0.8392857142857143, 0.9107142857142857,
        0.875, 0.9107142857142857,
        0.875, 0.9107142857142857,
        0.9107142857142857, 0.9107142857142857,
        0.9107142857142857, 0.9107142857142857,
        0.9464285714285714, 0.9107142857142857,
        0.9464285714285714, 0.9107142857142857,
        0.9821428571428571, 0.9107142857142857,
        0.9821428571428571, 0.9107142857142857,
        0.017857142857142856, 0.9464285714285714,
        0.017857142857142856, 0.9464285714285714,
        0.05357142857142857, 0.9464285714285714,
        0.05357142857142857, 0.9464285714285714,
        0.08928571428571429, 0.9464285714285714,
        0.08928571428571429, 0.9464285714285714,
        0.125, 0.9464285714285714,
        0.125, 0.9464285714285714,
        0.16071428571428573, 0.9464285714285714,
        0.16071428571428573, 0.9464285714285714,
        0.19642857142857142, 0.9464285714285714,
        0.19642857142857142, 0.9464285714285714,
        0.23214285714285715, 0.9464285714285714,
        0.23214285714285715, 0.9464285714285714,
        0.26785714285714285, 0.9464285714285714,
        0.26785714285714285, 0.9464285714285714,
        0.30357142857142855, 0.9464285714285714,
        0.30357142857142855, 0.9464285714285714,
        0.3392857142857143, 0.9464285714285714,
        0.3392857142857143, 0.9464285714285714,
        0.375, 0.9464285714285714,
        0.375, 0.9464285714285714,
        0.4107142857142857, 0.9464285714285714,
        0.4107142857142857, 0.9464285714285714,
        0.44642857142857145, 0.9464285714285714,
        0.44642857142857145, 0.9464285714285714,
        0.48214285714285715, 0.9464285714285714,
        0.48214285714285715, 0.9464285714285714,
        0.5178571428571429, 0.9464285714285714,
        0.5178571428571429, 0.9464285714285714,
        0.5535714285714286, 0.9464285714285714,
        0.5535714285714286, 0.9464285714285714,
        0.5892857142857143, 0.9464285714285714,
        0.5892857142857143, 0.9464285714285714,
        0.625, 0.9464285714285714,
        0.625, 0.9464285714285714,
        0.6607142857142857, 0.9464285714285714,
        0.6607142857142857, 0.9464285714285714,
        0.6964285714285714, 0.9464285714285714,
        0.6964285714285714, 0.9464285714285714,
        0.7321428571428571, 0.9464285714285714,
        0.7321428571428571, 0.9464285714285714,
        0.7678571428571429, 0.9464285714285714,
        0.7678571428571429, 0.9464285714285714,
        0.8035714285714286, 0.9464285714285714,
        0.8035714285714286, 0.9464285714285714,
        0.8392857142857143, 0.9464285714285714,
        0.8392857142857143, 0.9464285714285714,
        0.875, 0.9464285714285714,
        0.875, 0.9464285714285714,
        0.9107142857142857, 0.9464285714285714,
        0.9107142857142857, 0.9464285714285714,
        0.9464285714285714, 0.9464285714285714,
        0.9464285714285714, 0.9464285714285714,
        0.9821428571428571, 0.9464285714285714,
        0.9821428571428571, 0.9464285714285714,
        0.017857142857142856, 0.9821428571428571,
        0.017857142857142856, 0.9821428571428571,
        0.05357142857142857, 0.9821428571428571,
        0.05357142857142857, 0.9821428571428571,
        0.08928571428571429, 0.9821428571428571,
        0.08928571428571429, 0.9821428571428571,
        0.125, 0.9821428571428571,
        0.125, 0.9821428571428571,
        0.16071428571428573, 0.9821428571428571,
        0.16071428571428573, 0.9821428571428571,
        0.19642857142857142, 0.9821428571428571,
        0.19642857142857142, 0.9821428571428571,
        0.23214285714285715, 0.9821428571428571,
        0.23214285714285715, 0.9821428571428571,
        0.26785714285714285, 0.9821428571428571,
        0.26785714285714285, 0.9821428571428571,
        0.30357142857142855, 0.9821428571428571,
        0.30357142857142855, 0.9821428571428571,
        0.3392857142857143, 0.9821428571428571,
        0.3392857142857143, 0.9821428571428571,
        0.375, 0.9821428571428571,
        0.375, 0.9821428571428571,
        0.4107142857142857, 0.9821428571428571,
        0.4107142857142857, 0.9821428571428571,
        0.44642857142857145, 0.9821428571428571,
        0.44642857142857145, 0.9821428571428571,
        0.48214285714285715, 0.9821428571428571,
        0.48214285714285715, 0.9821428571428571,
        0.5178571428571429, 0.9821428571428571,
        0.5178571428571429, 0.9821428571428571,
        0.5535714285714286, 0.9821428571428571,
        0.5535714285714286, 0.9821428571428571,
        0.5892857142857143, 0.9821428571428571,
        0.5892857142857143, 0.9821428571428571,
        0.625, 0.9821428571428571,
        0.625, 0.9821428571428571,
        0.6607142857142857, 0.9821428571428571,
        0.6607142857142857, 0.9821428571428571,
        0.6964285714285714, 0.9821428571428571,
        0.6964285714285714, 0.9821428571428571,
        0.7321428571428571, 0.9821428571428571,
        0.7321428571428571, 0.9821428571428571,
        0.7678571428571429, 0.9821428571428571,
        0.7678571428571429, 0.9821428571428571,
        0.8035714285714286, 0.9821428571428571,
        0.8035714285714286, 0.9821428571428571,
        0.8392857142857143, 0.9821428571428571,
        0.8392857142857143, 0.9821428571428571,
        0.875, 0.9821428571428571,
        0.875, 0.9821428571428571,
        0.9107142857142857, 0.9821428571428571,
        0.9107142857142857, 0.9821428571428571,
        0.9464285714285714, 0.9821428571428571,
        0.9464285714285714, 0.9821428571428571,
        0.9821428571428571, 0.9821428571428571,
        0.9821428571428571, 0.9821428571428571,
        0.03571428571428571, 0.03571428571428571,
        0.03571428571428571, 0.03571428571428571,
        0.10714285714285714, 0.03571428571428571,
        0.10714285714285714, 0.03571428571428571,
        0.17857142857142858, 0.03571428571428571,
        0.17857142857142858, 0.03571428571428571,
        0.25, 0.03571428571428571,
        0.25, 0.03571428571428571,
        0.32142857142857145, 0.03571428571428571,
        0.32142857142857145, 0.03571428571428571,
        0.39285714285714285, 0.03571428571428571,
        0.39285714285714285, 0.03571428571428571,
        0.4642857142857143, 0.03571428571428571,
        0.4642857142857143, 0.03571428571428571,
        0.5357142857142857, 0.03571428571428571,
        0.5357142857142857, 0.03571428571428571,
        0.6071428571428571, 0.03571428571428571,
        0.6071428571428571, 0.03571428571428571,
        0.6785714285714286, 0.03571428571428571,
        0.6785714285714286, 0.03571428571428571,
        0.75, 0.03571428571428571,
        0.75, 0.03571428571428571,
        0.8214285714285714, 0.03571428571428571,
        0.8214285714285714, 0.03571428571428571,
        0.8928571428571429, 0.03571428571428571,
        0.8928571428571429, 0.03571428571428571,
        0.9642857142857143, 0.03571428571428571,
        0.9642857142857143, 0.03571428571428571,
        0.03571428571428571, 0.10714285714285714,
        0.03571428571428571, 0.10714285714285714,
        0.10714285714285714, 0.10714285714285714,
        0.10714285714285714, 0.10714285714285714,
        0.17857142857142858, 0.10714285714285714,
        0.17857142857142858, 0.10714285714285714,
        0.25, 0.10714285714285714,
        0.25, 0.10714285714285714,
        0.32142857142857145, 0.10714285714285714,
        0.32142857142857145, 0.10714285714285714,
        0.39285714285714285, 0.10714285714285714,
        0.39285714285714285, 0.10714285714285714,
        0.4642857142857143, 0.10714285714285714,
        0.4642857142857143, 0.10714285714285714,
        0.5357142857142857, 0.10714285714285714,
        0.5357142857142857, 0.10714285714285714,
        0.6071428571428571, 0.10714285714285714,
        0.6071428571428571, 0.10714285714285714,
        0.6785714285714286, 0.10714285714285714,
        0.6785714285714286, 0.10714285714285714,
        0.75, 0.10714285714285714,
        0.75, 0.10714285714285714,
        0.8214285714285714, 0.10714285714285714,
        0.8214285714285714, 0.10714285714285714,
        0.8928571428571429, 0.10714285714285714,
        0.8928571428571429, 0.10714285714285714,
        0.9642857142857143, 0.10714285714285714,
        0.9642857142857143, 0.10714285714285714,
        0.03571428571428571, 0.17857142857142858,
        0.03571428571428571, 0.17857142857142858,
        0.10714285714285714, 0.17857142857142858,
        0.10714285714285714, 0.17857142857142858,
        0.17857142857142858, 0.17857142857142858,
        0.17857142857142858, 0.17857142857142858,
        0.25, 0.17857142857142858,
        0.25, 0.17857142857142858,
        0.32142857142857145, 0.17857142857142858,
        0.32142857142857145, 0.17857142857142858,
        0.39285714285714285, 0.17857142857142858,
        0.39285714285714285, 0.17857142857142858,
        0.4642857142857143, 0.17857142857142858,
        0.4642857142857143, 0.17857142857142858,
        0.5357142857142857, 0.17857142857142858,
        0.5357142857142857, 0.17857142857142858,
        0.6071428571428571, 0.17857142857142858,
        0.6071428571428571, 0.17857142857142858,
        0.6785714285714286, 0.17857142857142858,
        0.6785714285714286, 0.17857142857142858,
        0.75, 0.17857142857142858,
        0.75, 0.17857142857142858,
        0.8214285714285714, 0.17857142857142858,
        0.8214285714285714, 0.17857142857142858,
        0.8928571428571429, 0.17857142857142858,
        0.8928571428571429, 0.17857142857142858,
        0.9642857142857143, 0.17857142857142858,
        0.9642857142857143, 0.17857142857142858,
        0.03571428571428571, 0.25,
        0.03571428571428571, 0.25,
        0.10714285714285714, 0.25,
        0.10714285714285714, 0.25,
        0.17857142857142858, 0.25,
        0.17857142857142858, 0.25,
        0.25, 0.25,
        0.25, 0.25,
        0.32142857142857145, 0.25,
        0.32142857142857145, 0.25,
        0.39285714285714285, 0.25,
        0.39285714285714285, 0.25,
        0.4642857142857143, 0.25,
        0.4642857142857143, 0.25,
        0.5357142857142857, 0.25,
        0.5357142857142857, 0.25,
        0.6071428571428571, 0.25,
        0.6071428571428571, 0.25,
        0.6785714285714286, 0.25,
        0.6785714285714286, 0.25,
        0.75, 0.25,
        0.75, 0.25,
        0.8214285714285714, 0.25,
        0.8214285714285714, 0.25,
        0.8928571428571429, 0.25,
        0.8928571428571429, 0.25,
        0.9642857142857143, 0.25,
        0.9642857142857143, 0.25,
        0.03571428571428571, 0.32142857142857145,
        0.03571428571428571, 0.32142857142857145,
        0.10714285714285714, 0.32142857142857145,
        0.10714285714285714, 0.32142857142857145,
        0.17857142857142858, 0.32142857142857145,
        0.17857142857142858, 0.32142857142857145,
        0.25, 0.32142857142857145,
        0.25, 0.32142857142857145,
        0.32142857142857145, 0.32142857142857145,
        0.32142857142857145, 0.32142857142857145,
        0.39285714285714285, 0.32142857142857145,
        0.39285714285714285, 0.32142857142857145,
        0.4642857142857143, 0.32142857142857145,
        0.4642857142857143, 0.32142857142857145,
        0.5357142857142857, 0.32142857142857145,
        0.5357142857142857, 0.32142857142857145,
        0.6071428571428571, 0.32142857142857145,
        0.6071428571428571, 0.32142857142857145,
        0.6785714285714286, 0.32142857142857145,
        0.6785714285714286, 0.32142857142857145,
        0.75, 0.32142857142857145,
        0.75, 0.32142857142857145,
        0.8214285714285714, 0.32142857142857145,
        0.8214285714285714, 0.32142857142857145,
        0.8928571428571429, 0.32142857142857145,
        0.8928571428571429, 0.32142857142857145,
        0.9642857142857143, 0.32142857142857145,
        0.9642857142857143, 0.32142857142857145,
        0.03571428571428571, 0.39285714285714285,
        0.03571428571428571, 0.39285714285714285,
        0.10714285714285714, 0.39285714285714285,
        0.10714285714285714, 0.39285714285714285,
        0.17857142857142858, 0.39285714285714285,
        0.17857142857142858, 0.39285714285714285,
        0.25, 0.39285714285714285,
        0.25, 0.39285714285714285,
        0.32142857142857145, 0.39285714285714285,
        0.32142857142857145, 0.39285714285714285,
        0.39285714285714285, 0.39285714285714285,
        0.39285714285714285, 0.39285714285714285,
        0.4642857142857143, 0.39285714285714285,
        0.4642857142857143, 0.39285714285714285,
        0.5357142857142857, 0.39285714285714285,
        0.5357142857142857, 0.39285714285714285,
        0.6071428571428571, 0.39285714285714285,
        0.6071428571428571, 0.39285714285714285,
        0.6785714285714286, 0.39285714285714285,
        0.6785714285714286, 0.39285714285714285,
        0.75, 0.39285714285714285,
        0.75, 0.39285714285714285,
        0.8214285714285714, 0.39285714285714285,
        0.8214285714285714, 0.39285714285714285,
        0.8928571428571429, 0.39285714285714285,
        0.8928571428571429, 0.39285714285714285,
        0.9642857142857143, 0.39285714285714285,
        0.9642857142857143, 0.39285714285714285,
        0.03571428571428571, 0.4642857142857143,
        0.03571428571428571, 0.4642857142857143,
        0.10714285714285714, 0.4642857142857143,
        0.10714285714285714, 0.4642857142857143,
        0.17857142857142858, 0.4642857142857143,
        0.17857142857142858, 0.4642857142857143,
        0.25, 0.4642857142857143,
        0.25, 0.4642857142857143,
        0.32142857142857145, 0.4642857142857143,
        0.32142857142857145, 0.4642857142857143,
        0.39285714285714285, 0.4642857142857143,
        0.39285714285714285, 0.4642857142857143,
        0.4642857142857143, 0.4642857142857143,
        0.4642857142857143, 0.4642857142857143,
        0.5357142857142857, 0.4642857142857143,
        0.5357142857142857, 0.4642857142857143,
        0.6071428571428571, 0.4642857142857143,
        0.6071428571428571, 0.4642857142857143,
        0.6785714285714286, 0.4642857142857143,
        0.6785714285714286, 0.4642857142857143,
        0.75, 0.4642857142857143,
        0.75, 0.4642857142857143,
        0.8214285714285714, 0.4642857142857143,
        0.8214285714285714, 0.4642857142857143,
        0.8928571428571429, 0.4642857142857143,
        0.8928571428571429, 0.4642857142857143,
        0.9642857142857143, 0.4642857142857143,
        0.9642857142857143, 0.4642857142857143,
        0.03571428571428571, 0.5357142857142857,
        0.03571428571428571, 0.5357142857142857,
        0.10714285714285714, 0.5357142857142857,
        0.10714285714285714, 0.5357142857142857,
        0.17857142857142858, 0.5357142857142857,
        0.17857142857142858, 0.5357142857142857,
        0.25, 0.5357142857142857,
        0.25, 0.5357142857142857,
        0.32142857142857145, 0.5357142857142857,
        0.32142857142857145, 0.5357142857142857,
        0.39285714285714285, 0.5357142857142857,
        0.39285714285714285, 0.5357142857142857,
        0.4642857142857143, 0.5357142857142857,
        0.4642857142857143, 0.5357142857142857,
        0.5357142857142857, 0.5357142857142857,
        0.5357142857142857, 0.5357142857142857,
        0.6071428571428571, 0.5357142857142857,
        0.6071428571428571, 0.5357142857142857,
        0.6785714285714286, 0.5357142857142857,
        0.6785714285714286, 0.5357142857142857,
        0.75, 0.5357142857142857,
        0.75, 0.5357142857142857,
        0.8214285714285714, 0.5357142857142857,
        0.8214285714285714, 0.5357142857142857,
        0.8928571428571429, 0.5357142857142857,
        0.8928571428571429, 0.5357142857142857,
        0.9642857142857143, 0.5357142857142857,
        0.9642857142857143, 0.5357142857142857,
        0.03571428571428571, 0.6071428571428571,
        0.03571428571428571, 0.6071428571428571,
        0.10714285714285714, 0.6071428571428571,
        0.10714285714285714, 0.6071428571428571,
        0.17857142857142858, 0.6071428571428571,
        0.17857142857142858, 0.6071428571428571,
        0.25, 0.6071428571428571,
        0.25, 0.6071428571428571,
        0.32142857142857145, 0.6071428571428571,
        0.32142857142857145, 0.6071428571428571,
        0.39285714285714285, 0.6071428571428571,
        0.39285714285714285, 0.6071428571428571,
        0.4642857142857143, 0.6071428571428571,
        0.4642857142857143, 0.6071428571428571,
        0.5357142857142857, 0.6071428571428571,
        0.5357142857142857, 0.6071428571428571,
        0.6071428571428571, 0.6071428571428571,
        0.6071428571428571, 0.6071428571428571,
        0.6785714285714286, 0.6071428571428571,
        0.6785714285714286, 0.6071428571428571,
        0.75, 0.6071428571428571,
        0.75, 0.6071428571428571,
        0.8214285714285714, 0.6071428571428571,
        0.8214285714285714, 0.6071428571428571,
        0.8928571428571429, 0.6071428571428571,
        0.8928571428571429, 0.6071428571428571,
        0.9642857142857143, 0.6071428571428571,
        0.9642857142857143, 0.6071428571428571,
        0.03571428571428571, 0.6785714285714286,
        0.03571428571428571, 0.6785714285714286,
        0.10714285714285714, 0.6785714285714286,
        0.10714285714285714, 0.6785714285714286,
        0.17857142857142858, 0.6785714285714286,
        0.17857142857142858, 0.6785714285714286,
        0.25, 0.6785714285714286,
        0.25, 0.6785714285714286,
        0.32142857142857145, 0.6785714285714286,
        0.32142857142857145, 0.6785714285714286,
        0.39285714285714285, 0.6785714285714286,
        0.39285714285714285, 0.6785714285714286,
        0.4642857142857143, 0.6785714285714286,
        0.4642857142857143, 0.6785714285714286,
        0.5357142857142857, 0.6785714285714286,
        0.5357142857142857, 0.6785714285714286,
        0.6071428571428571, 0.6785714285714286,
        0.6071428571428571, 0.6785714285714286,
        0.6785714285714286, 0.6785714285714286,
        0.6785714285714286, 0.6785714285714286,
        0.75, 0.6785714285714286,
        0.75, 0.6785714285714286,
        0.8214285714285714, 0.6785714285714286,
        0.8214285714285714, 0.6785714285714286,
        0.8928571428571429, 0.6785714285714286,
        0.8928571428571429, 0.6785714285714286,
        0.9642857142857143, 0.6785714285714286,
        0.9642857142857143, 0.6785714285714286,
        0.03571428571428571, 0.75,
        0.03571428571428571, 0.75,
        0.10714285714285714, 0.75,
        0.10714285714285714, 0.75,
        0.17857142857142858, 0.75,
        0.17857142857142858, 0.75,
        0.25, 0.75,
        0.25, 0.75,
        0.32142857142857145, 0.75,
        0.32142857142857145, 0.75,
        0.39285714285714285, 0.75,
        0.39285714285714285, 0.75,
        0.4642857142857143, 0.75,
        0.4642857142857143, 0.75,
        0.5357142857142857, 0.75,
        0.5357142857142857, 0.75,
        0.6071428571428571, 0.75,
        0.6071428571428571, 0.75,
        0.6785714285714286, 0.75,
        0.6785714285714286, 0.75,
        0.75, 0.75,
        0.75, 0.75,
        0.8214285714285714, 0.75,
        0.8214285714285714, 0.75,
        0.8928571428571429, 0.75,
        0.8928571428571429, 0.75,
        0.9642857142857143, 0.75,
        0.9642857142857143, 0.75,
        0.03571428571428571, 0.8214285714285714,
        0.03571428571428571, 0.8214285714285714,
        0.10714285714285714, 0.8214285714285714,
        0.10714285714285714, 0.8214285714285714,
        0.17857142857142858, 0.8214285714285714,
        0.17857142857142858, 0.8214285714285714,
        0.25, 0.8214285714285714,
        0.25, 0.8214285714285714,
        0.32142857142857145, 0.8214285714285714,
        0.32142857142857145, 0.8214285714285714,
        0.39285714285714285, 0.8214285714285714,
        0.39285714285714285, 0.8214285714285714,
        0.4642857142857143, 0.8214285714285714,
        0.4642857142857143, 0.8214285714285714,
        0.5357142857142857, 0.8214285714285714,
        0.5357142857142857, 0.8214285714285714,
        0.6071428571428571, 0.8214285714285714,
        0.6071428571428571, 0.8214285714285714,
        0.6785714285714286, 0.8214285714285714,
        0.6785714285714286, 0.8214285714285714,
        0.75, 0.8214285714285714,
        0.75, 0.8214285714285714,
        0.8214285714285714, 0.8214285714285714,
        0.8214285714285714, 0.8214285714285714,
        0.8928571428571429, 0.8214285714285714,
        0.8928571428571429, 0.8214285714285714,
        0.9642857142857143, 0.8214285714285714,
        0.9642857142857143, 0.8214285714285714,
        0.03571428571428571, 0.8928571428571429,
        0.03571428571428571, 0.8928571428571429,
        0.10714285714285714, 0.8928571428571429,
        0.10714285714285714, 0.8928571428571429,
        0.17857142857142858, 0.8928571428571429,
        0.17857142857142858, 0.8928571428571429,
        0.25, 0.8928571428571429,
        0.25, 0.8928571428571429,
        0.32142857142857145, 0.8928571428571429,
        0.32142857142857145, 0.8928571428571429,
        0.39285714285714285, 0.8928571428571429,
        0.39285714285714285, 0.8928571428571429,
        0.4642857142857143, 0.8928571428571429,
        0.4642857142857143, 0.8928571428571429,
        0.5357142857142857, 0.8928571428571429,
        0.5357142857142857, 0.8928571428571429,
        0.6071428571428571, 0.8928571428571429,
        0.6071428571428571, 0.8928571428571429,
        0.6785714285714286, 0.8928571428571429,
        0.6785714285714286, 0.8928571428571429,
        0.75, 0.8928571428571429,
        0.75, 0.8928571428571429,
        0.8214285714285714, 0.8928571428571429,
        0.8214285714285714, 0.8928571428571429,
        0.8928571428571429, 0.8928571428571429,
        0.8928571428571429, 0.8928571428571429,
        0.9642857142857143, 0.8928571428571429,
        0.9642857142857143, 0.8928571428571429,
        0.03571428571428571, 0.9642857142857143,
        0.03571428571428571, 0.9642857142857143,
        0.10714285714285714, 0.9642857142857143,
        0.10714285714285714, 0.9642857142857143,
        0.17857142857142858, 0.9642857142857143,
        0.17857142857142858, 0.9642857142857143,
        0.25, 0.9642857142857143,
        0.25, 0.9642857142857143,
        0.32142857142857145, 0.9642857142857143,
        0.32142857142857145, 0.9642857142857143,
        0.39285714285714285, 0.9642857142857143,
        0.39285714285714285, 0.9642857142857143,
        0.4642857142857143, 0.9642857142857143,
        0.4642857142857143, 0.9642857142857143,
        0.5357142857142857, 0.9642857142857143,
        0.5357142857142857, 0.9642857142857143,
        0.6071428571428571, 0.9642857142857143,
        0.6071428571428571, 0.9642857142857143,
        0.6785714285714286, 0.9642857142857143,
        0.6785714285714286, 0.9642857142857143,
        0.75, 0.9642857142857143,
        0.75, 0.9642857142857143,
        0.8214285714285714, 0.9642857142857143,
        0.8214285714285714, 0.9642857142857143,
        0.8928571428571429, 0.9642857142857143,
        0.8928571428571429, 0.9642857142857143,
        0.9642857142857143, 0.9642857142857143,
        0.9642857142857143, 0.9642857142857143,
        0.07142857142857142, 0.07142857142857142,
        0.07142857142857142, 0.07142857142857142,
        0.07142857142857142, 0.07142857142857142,
        0.07142857142857142, 0.07142857142857142,
        0.07142857142857142, 0.07142857142857142,
        0.07142857142857142, 0.07142857142857142,
        0.21428571428571427, 0.07142857142857142,
        0.21428571428571427, 0.07142857142857142,
        0.21428571428571427, 0.07142857142857142,
        0.21428571428571427, 0.07142857142857142,
        0.21428571428571427, 0.07142857142857142,
        0.21428571428571427, 0.07142857142857142,
        0.35714285714285715, 0.07142857142857142,
        0.35714285714285715, 0.07142857142857142,
        0.35714285714285715, 0.07142857142857142,
        0.35714285714285715, 0.07142857142857142,
        0.35714285714285715, 0.07142857142857142,
        0.35714285714285715, 0.07142857142857142,
        0.5, 0.07142857142857142,
        0.5, 0.07142857142857142,
        0.5, 0.07142857142857142,
        0.5, 0.07142857142857142,
        0.5, 0.07142857142857142,
        0.5, 0.07142857142857142,
        0.6428571428571429, 0.07142857142857142,
        0.6428571428571429, 0.07142857142857142,
        0.6428571428571429, 0.07142857142857142,
        0.6428571428571429, 0.07142857142857142,
        0.6428571428571429, 0.07142857142857142,
        0.6428571428571429, 0.07142857142857142,
        0.7857142857142857, 0.07142857142857142,
        0.7857142857142857, 0.07142857142857142,
        0.7857142857142857, 0.07142857142857142,
        0.7857142857142857, 0.07142857142857142,
        0.7857142857142857, 0.07142857142857142,
        0.7857142857142857, 0.07142857142857142,
        0.9285714285714286, 0.07142857142857142,
        0.9285714285714286, 0.07142857142857142,
        0.9285714285714286, 0.07142857142857142,
        0.9285714285714286, 0.07142857142857142,
        0.9285714285714286, 0.07142857142857142,
        0.9285714285714286, 0.07142857142857142,
        0.07142857142857142, 0.21428571428571427,
        0.07142857142857142, 0.21428571428571427,
        0.07142857142857142, 0.21428571428571427,
        0.07142857142857142, 0.21428571428571427,
        0.07142857142857142, 0.21428571428571427,
        0.07142857142857142, 0.21428571428571427,
        0.21428571428571427, 0.21428571428571427,
        0.21428571428571427, 0.21428571428571427,
        0.21428571428571427, 0.21428571428571427,
        0.21428571428571427, 0.21428571428571427,
        0.21428571428571427, 0.21428571428571427,
        0.21428571428571427, 0.21428571428571427,
        0.35714285714285715, 0.21428571428571427,
        0.35714285714285715, 0.21428571428571427,
        0.35714285714285715, 0.21428571428571427,
        0.35714285714285715, 0.21428571428571427,
        0.35714285714285715, 0.21428571428571427,
        0.35714285714285715, 0.21428571428571427,
        0.5, 0.21428571428571427,
        0.5, 0.21428571428571427,
        0.5, 0.21428571428571427,
        0.5, 0.21428571428571427,
        0.5, 0.21428571428571427,
        0.5, 0.21428571428571427,
        0.6428571428571429, 0.21428571428571427,
        0.6428571428571429, 0.21428571428571427,
        0.6428571428571429, 0.21428571428571427,
        0.6428571428571429, 0.21428571428571427,
        0.6428571428571429, 0.21428571428571427,
        0.6428571428571429, 0.21428571428571427,
        0.7857142857142857, 0.21428571428571427,
        0.7857142857142857, 0.21428571428571427,
        0.7857142857142857, 0.21428571428571427,
        0.7857142857142857, 0.21428571428571427,
        0.7857142857142857, 0.21428571428571427,
        0.7857142857142857, 0.21428571428571427,
        0.9285714285714286, 0.21428571428571427,
        0.9285714285714286, 0.21428571428571427,
        0.9285714285714286, 0.21428571428571427,
        0.9285714285714286, 0.21428571428571427,
        0.9285714285714286, 0.21428571428571427,
        0.9285714285714286, 0.21428571428571427,
        0.07142857142857142, 0.35714285714285715,
        0.07142857142857142, 0.35714285714285715,
        0.07142857142857142, 0.35714285714285715,
        0.07142857142857142, 0.35714285714285715,
        0.07142857142857142, 0.35714285714285715,
        0.07142857142857142, 0.35714285714285715,
        0.21428571428571427, 0.35714285714285715,
        0.21428571428571427, 0.35714285714285715,
        0.21428571428571427, 0.35714285714285715,
        0.21428571428571427, 0.35714285714285715,
        0.21428571428571427, 0.35714285714285715,
        0.21428571428571427, 0.35714285714285715,
        0.35714285714285715, 0.35714285714285715,
        0.35714285714285715, 0.35714285714285715,
        0.35714285714285715, 0.35714285714285715,
        0.35714285714285715, 0.35714285714285715,
        0.35714285714285715, 0.35714285714285715,
        0.35714285714285715, 0.35714285714285715,
        0.5, 0.35714285714285715,
        0.5, 0.35714285714285715,
        0.5, 0.35714285714285715,
        0.5, 0.35714285714285715,
        0.5, 0.35714285714285715,
        0.5, 0.35714285714285715,
        0.6428571428571429, 0.35714285714285715,
        0.6428571428571429, 0.35714285714285715,
        0.6428571428571429, 0.35714285714285715,
        0.6428571428571429, 0.35714285714285715,
        0.6428571428571429, 0.35714285714285715,
        0.6428571428571429, 0.35714285714285715,
        0.7857142857142857, 0.35714285714285715,
        0.7857142857142857, 0.35714285714285715,
        0.7857142857142857, 0.35714285714285715,
        0.7857142857142857, 0.35714285714285715,
        0.7857142857142857, 0.35714285714285715,
        0.7857142857142857, 0.35714285714285715,
        0.9285714285714286, 0.35714285714285715,
        0.9285714285714286, 0.35714285714285715,
        0.9285714285714286, 0.35714285714285715,
        0.9285714285714286, 0.35714285714285715,
        0.9285714285714286, 0.35714285714285715,
        0.9285714285714286, 0.35714285714285715,
        0.07142857142857142, 0.5,
        0.07142857142857142, 0.5,
        0.07142857142857142, 0.5,
        0.07142857142857142, 0.5,
        0.07142857142857142, 0.5,
        0.07142857142857142, 0.5,
        0.21428571428571427, 0.5,
        0.21428571428571427, 0.5,
        0.21428571428571427, 0.5,
        0.21428571428571427, 0.5,
        0.21428571428571427, 0.5,
        0.21428571428571427, 0.5,
        0.35714285714285715, 0.5,
        0.35714285714285715, 0.5,
        0.35714285714285715, 0.5,
        0.35714285714285715, 0.5,
        0.35714285714285715, 0.5,
        0.35714285714285715, 0.5,
        0.5, 0.5,
        0.5, 0.5,
        0.5, 0.5,
        0.5, 0.5,
        0.5, 0.5,
        0.5, 0.5,
        0.6428571428571429, 0.5,
        0.6428571428571429, 0.5,
        0.6428571428571429, 0.5,
        0.6428571428571429, 0.5,
        0.6428571428571429, 0.5,
        0.6428571428571429, 0.5,
        0.7857142857142857, 0.5,
        0.7857142857142857, 0.5,
        0.7857142857142857, 0.5,
        0.7857142857142857, 0.5,
        0.7857142857142857, 0.5,
        0.7857142857142857, 0.5,
        0.9285714285714286, 0.5,
        0.9285714285714286, 0.5,
        0.9285714285714286, 0.5,
        0.9285714285714286, 0.5,
        0.9285714285714286, 0.5,
        0.9285714285714286, 0.5,
        0.07142857142857142, 0.6428571428571429,
        0.07142857142857142, 0.6428571428571429,
        0.07142857142857142, 0.6428571428571429,
        0.07142857142857142, 0.6428571428571429,
        0.07142857142857142, 0.6428571428571429,
        0.07142857142857142, 0.6428571428571429,
        0.21428571428571427, 0.6428571428571429,
        0.21428571428571427, 0.6428571428571429,
        0.21428571428571427, 0.6428571428571429,
        0.21428571428571427, 0.6428571428571429,
        0.21428571428571427, 0.6428571428571429,
        0.21428571428571427, 0.6428571428571429,
        0.35714285714285715, 0.6428571428571429,
        0.35714285714285715, 0.6428571428571429,
        0.35714285714285715, 0.6428571428571429,
        0.35714285714285715, 0.6428571428571429,
        0.35714285714285715, 0.6428571428571429,
        0.35714285714285715, 0.6428571428571429,
        0.5, 0.6428571428571429,
        0.5, 0.6428571428571429,
        0.5, 0.6428571428571429,
        0.5, 0.6428571428571429,
        0.5, 0.6428571428571429,
        0.5, 0.6428571428571429,
        0.6428571428571429, 0.6428571428571429,
        0.6428571428571429, 0.6428571428571429,
        0.6428571428571429, 0.6428571428571429,
        0.6428571428571429, 0.6428571428571429,
        0.6428571428571429, 0.6428571428571429,
        0.6428571428571429, 0.6428571428571429,
        0.7857142857142857, 0.6428571428571429,
        0.7857142857142857, 0.6428571428571429,
        0.7857142857142857, 0.6428571428571429,
        0.7857142857142857, 0.6428571428571429,
        0.7857142857142857, 0.6428571428571429,
        0.7857142857142857, 0.6428571428571429,
        0.9285714285714286, 0.6428571428571429,
        0.9285714285714286, 0.6428571428571429,
        0.9285714285714286, 0.6428571428571429,
        0.9285714285714286, 0.6428571428571429,
        0.9285714285714286, 0.6428571428571429,
        0.9285714285714286, 0.6428571428571429,
        0.07142857142857142, 0.7857142857142857,
        0.07142857142857142, 0.7857142857142857,
        0.07142857142857142, 0.7857142857142857,
        0.07142857142857142, 0.7857142857142857,
        0.07142857142857142, 0.7857142857142857,
        0.07142857142857142, 0.7857142857142857,
        0.21428571428571427, 0.7857142857142857,
        0.21428571428571427, 0.7857142857142857,
        0.21428571428571427, 0.7857142857142857,
        0.21428571428571427, 0.7857142857142857,
        0.21428571428571427, 0.7857142857142857,
        0.21428571428571427, 0.7857142857142857,
        0.35714285714285715, 0.7857142857142857,
        0.35714285714285715, 0.7857142857142857,
        0.35714285714285715, 0.7857142857142857,
        0.35714285714285715, 0.7857142857142857,
        0.35714285714285715, 0.7857142857142857,
        0.35714285714285715, 0.7857142857142857,
        0.5, 0.7857142857142857,
        0.5, 0.7857142857142857,
        0.5, 0.7857142857142857,
        0.5, 0.7857142857142857,
        0.5, 0.7857142857142857,
        0.5, 0.7857142857142857,
        0.6428571428571429, 0.7857142857142857,
        0.6428571428571429, 0.7857142857142857,
        0.6428571428571429, 0.7857142857142857,
        0.6428571428571429, 0.7857142857142857,
        0.6428571428571429, 0.7857142857142857,
        0.6428571428571429, 0.7857142857142857,
        0.7857142857142857, 0.7857142857142857,
        0.7857142857142857, 0.7857142857142857,
        0.7857142857142857, 0.7857142857142857,
        0.7857142857142857, 0.7857142857142857,
        0.7857142857142857, 0.7857142857142857,
        0.7857142857142857, 0.7857142857142857,
        0.9285714285714286, 0.7857142857142857,
        0.9285714285714286, 0.7857142857142857,
        0.9285714285714286, 0.7857142857142857,
        0.9285714285714286, 0.7857142857142857,
        0.9285714285714286, 0.7857142857142857,
        0.9285714285714286, 0.7857142857142857,
        0.07142857142857142, 0.9285714285714286,
        0.07142857142857142, 0.9285714285714286,
        0.07142857142857142, 0.9285714285714286,
        0.07142857142857142, 0.9285714285714286,
        0.07142857142857142, 0.9285714285714286,
        0.07142857142857142, 0.9285714285714286,
        0.21428571428571427, 0.9285714285714286,
        0.21428571428571427, 0.9285714285714286,
        0.21428571428571427, 0.9285714285714286,
        0.21428571428571427, 0.9285714285714286,
        0.21428571428571427, 0.9285714285714286,
        0.21428571428571427, 0.9285714285714286,
        0.35714285714285715, 0.9285714285714286,
        0.35714285714285715, 0.9285714285714286,
        0.35714285714285715, 0.9285714285714286,
        0.35714285714285715, 0.9285714285714286,
        0.35714285714285715, 0.9285714285714286,
        0.35714285714285715, 0.9285714285714286,
        0.5, 0.9285714285714286,
        0.5, 0.9285714285714286,
        0.5, 0.9285714285714286,
        0.5, 0.9285714285714286,
        0.5, 0.9285714285714286,
        0.5, 0.9285714285714286,
        0.6428571428571429, 0.9285714285714286,
        0.6428571428571429, 0.9285714285714286,
        0.6428571428571429, 0.9285714285714286,
        0.6428571428571429, 0.9285714285714286,
        0.6428571428571429, 0.9285714285714286,
        0.6428571428571429, 0.9285714285714286,
        0.7857142857142857, 0.9285714285714286,
        0.7857142857142857, 0.9285714285714286,
        0.7857142857142857, 0.9285714285714286,
        0.7857142857142857, 0.9285714285714286,
        0.7857142857142857, 0.9285714285714286,
        0.7857142857142857, 0.9285714285714286,
        0.9285714285714286, 0.9285714285714286,
        0.9285714285714286, 0.9285714285714286,
        0.9285714285714286, 0.9285714285714286,
        0.9285714285714286, 0.9285714285714286,
        0.9285714285714286, 0.9285714285714286,
        0.9285714285714286, 0.9285714285714286);
        return anchor;
}
